DateTime.toString无法正确解释从“ dd / MM / yyyy h:mm:ss tt”到“ yyyy-MM-ddTHH:mm:ss.fffZ”的PM

问题描述

我正在用它撞墙。

我目前正在尝试捕获DateTime格式的yyyy-MM-ddTHH:mm:ss.fffZ作为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方法不合适?

解决方法

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