DateTime.toString 未正确计算从 "dd/MM/yyyy h:mm:ss tt" 到 "yyyy-MM-ddTHH:mm:ss.fffZ" 的 PM

DateTime.toString not accounting for PM correctly from "dd/MM/yyyy h:mm:ss tt" to "yyyy-MM-ddTHH:mm:ss.fffZ"

我用这个有点碰壁。

我目前正在尝试以 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 方法不是合适的选择?

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