【问题标题】:Date Format Changes While Sending Data to SftpClient With Renci.SSHNet使用 Renci.SSHNet 向 SftpClient 发送数据时日期格式发生变化
【发布时间】:2020-06-30 14:11:08
【问题描述】:

我正在尝试将字符串行发送到远程 SFTP 服务器。

我正在使用带有 Renci.SSHNet 的 SftpClient。

这就是我构建字符串行的方式:

row = string.Format("{0},{1},{2},{3:dd/MM/yyyy HH:mm:ss},{4:dd/MM/yyyy HH:mm:ss},{5:dd/MM/yyyy HH:mm:ss},{6},{7},{8},{9},{10},{11}", queue_id, queue_name, taskId,
customRow.createdTime.AddSeconds(secondsAdd), first_handled_date_and_time.AddSeconds(secondsAdd), customRow.closedTime.AddSeconds(secondsAdd),
task_work_time_in_s, after_task_work_time_in_s, queuing_time_in_s, is_handled_within_service_level, task_status_description, handling_time);

这是我上传行的代码:

using (SftpClient sftp = new SftpClient(con))
{
    try
    {
        if (sftp.IsConnected)
            sftp.Disconnect();

        sftp.OperationTimeout = TimeSpan.FromTicks((TimeSpan.TicksPerMinute * 5));
        sftp.Connect();
        sftp.WriteAllLines(filePath, content, encoding);
    }
    .
    .
    .
}

字段内容是前面代码部分的行数组。

我的主要问题是到达的文件中的日期格式是第一列的 dd/MM/yyyy 和其他 2 个日期列的 MM-dd-yyyy。

有人可以向我解释一下或告诉我我做错了什么吗?

提前谢谢你

【问题讨论】:

    标签: c# datetime sftp ssh2-sftp-client


    【解决方案1】:

    日期反序列化器可能默认为美国格式的月/日/年,并在您将其倒写时进行一些极端情况处理(它可以判断,即月份是 13-31 时)。

    06/08/2006 - 对您来说是 2006 年 8 月 6 日,对解串器来说是 2006 年 6 月 8 日。 也许它可以计算出 06/21/2006 表示 21-Jun-2006,因为 21 不可能是月份。

    尝试使用 3 M 进行格式化以避免混淆。 dd/MMM/yyyy

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-12
      • 1970-01-01
      • 1970-01-01
      • 2010-11-20
      • 2018-07-18
      • 1970-01-01
      相关资源
      最近更新 更多