gpt4 book ai didi

c# - 在 C# 中转换 UTC 日期/时间字符串

转载 作者:太空狗 更新时间:2023-10-29 22:23:07 28 4
gpt4 key购买 nike

我需要将字符串 "Fri Sep 11 00:00:00 GMT+04:00 2020" 转换为 DateTime 对象 11.09.2011.

当我使用

DateTime result;
DateTime.TryParseExact(MyString, "ddd MMM dd HH:mm:ss 'GMT'zzz yyyy",
CultureInfo.InvariantCulture, DateTimeStyles.None, out result);

result 等于 {9/10/2020 11:00:00 PM}

如何修改代码,使日期部分为 11.09.2011不是 10.09.2011(我只需要日期并且不关心时间)?

最佳答案

改为解析为 DateTimeOffset,前提是您得到了一个偏移量。来自documentation of the zz specifier你正在使用:

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

所以你最终会得到:

DateTimeOffset result;
bool success = DateTimeOffset.TryParseExact
(text, "ddd MMM dd HH:mm:ss 'GMT'zzz yyyy",
CultureInfo.InvariantCulture, DateTimeStyles.None, out result);

从那里,您可以获取 DateTime 部分,即 9 月 11 日午夜。

如果你想要只是一个约会,你可以使用我的Noda Time创建 LocalDate 的项目:

LocalDate = OffsetDateTime.FromDateTimeOffset(result).LocalDateTime.Date;

(我很乐意建议直接解析为 OffsetDateTime,但我们还没有得到支持。我们希望将其包含在 1.2 版中。)

关于c# - 在 C# 中转换 UTC 日期/时间字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14774219/

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