gpt4 book ai didi

c# - 从字符串 c# 中解析 DateTime

转载 作者:太空狗 更新时间:2023-10-30 00:01:13 24 4
gpt4 key购买 nike

我有从传入 API 调用中获得的日期:Wed, 6 Mar 2019 14:39:49 +0300

我需要将这个字符串解析为 DateTime。为此,我使用以下代码:

DateTime.ParseExact("Wed, 6 Mar 2019 14:39:49 +0300", 
new string[] { "ddd, dd MMM yyyy HH:mm:ss zzzz" },
CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal);

但结果我有错误:

String 'Wed, 6 Mar 2019 14:39:49 +0300' was not recognized as a valid DateTime.

我做错了什么?我该如何解决这个问题?

最佳答案

我看到了两件事;

  1. 你应该使用d specifier而不是 dd 说明符,因为您的个位数天数没有leading zero .
  2. 没有zzzz 作为自定义格式说明符。你应该使用 zzz specifier相反。

DateTime.ParseExact("Wed, 6 Mar 2019 14:39:49 +0300", 
new string[] { "ddd, d MMM yyyy HH:mm:ss zzz" },
CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal);

但老实说,如果你的字符串有 UTC Offset值,我建议将其解析为 DateTimeOffset相反,因为 DateTime 实例没有偏移部分,并且不建议使用 zzz 说明符,如 MSDN 所述。

With DateTime values, the "zzz" custom format specifier represents the signed offset of the local operating system's time zone from UTC, measured in hours and minutes. It does not reflect the value of an instance's DateTime.Kind property. For this reason, the "zzz" format specifier is not recommended for use with DateTime values.

解析DateTimeOffset,

DateTimeOffset.ParseExact("Wed, 6 Mar 2019 14:39:49 +0300", 
new string[] { "ddd, d MMM yyyy HH:mm:ss zzz" },
CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal);

现在您可以使用它的 .DateTime和/或 .Offset如果需要,请单独设置属性。

关于c# - 从字符串 c# 中解析 DateTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55025102/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com