【问题标题】:DateTime.toString not accounting for PM correctly from "dd/MM/yyyy h:mm:ss tt" to "yyyy-MM-ddTHH:mm:ss.fffZ"从“dd/MM/yyyy h:mm:ss tt”到“yyyy-MM-ddTHH:mm:ss.fffZ”的 DateTime.toString 没有正确考虑 PM
【发布时间】:2020-10-09 21:18:44
【问题描述】:

这个我有点碰壁了。

我目前正在尝试以yyyy-MM-ddTHH:mm:ss.fffZ 的格式捕获DateTime 作为API 调用的字符串。但是,我的原始时间戳目前被格式化为dd/MM/yyyy h:mm:ss tt 之类的字符串。

我的代码如下:

string startingTimestamp = "04/28/2020 11:25:43 PM"

DateTime dt = DateTime.ParseExact(startingTimestamp, "MM/dd/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture);
string finalTimestamp = dt.ToString("yyyy-MM-ddThh:mm:ss.fffZ");

我期望出来的是:2020-04-28T23:25:43.511Z

但相反,我得到:2020-04-28T11:25:43.000Z

在我的调试中,我可以看到 DateTime 占 PM,但它仍然输出为 11:25 而不是 23:25。

我是否遗漏了一些额外的步骤来将 DateTime 硬转换为 24H 而不是 12H,或者 toString 方法不是合适的选择?

【问题讨论】:

    标签: c# date datetime date-parsing


    【解决方案1】:

    尝试 HH 24 小时。使用 hh 12 小时。

    【讨论】:

    • 我知道我错过了一些奇怪的语法规则。像魅力一样工作!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-08
    • 2020-02-24
    • 1970-01-01
    • 2014-04-30
    • 1970-01-01
    • 2019-02-17
    相关资源
    最近更新 更多