gpt4 book ai didi

c# - DateTimeZoneHandling.RoundtripKind 未保留日期时间时区

转载 作者:行者123 更新时间:2023-12-05 07:55:16 28 4
gpt4 key购买 nike

我有以下代码:

                JsonReader reader = new JsonTextReader(new    StringReader(content.ToString()));
reader.DateTimeZoneHandling = DateTimeZoneHandling.RoundtripKind;
reader.DateFormatString = "yyyy-MM-dd HH:mm:ss";
reader.DateParseHandling = DateParseHandling.DateTime;
myObj = JObject.Load(reader);

尽管使用 DateTimeZoneHandling.RoundtripKind;仍然是转换为本地时区的日期。例如:

   "2015-02-02T12:01:14.548-0500"

改为:

   "2015-02-02T11:01:14.548-0500",

最佳答案

这是 .net 的已知问题 ( more about it )

一种可能的解决方法是使用 DateTimeOffset 正确解析日期,然后使用方法将其转换回 DateTime

static DateTime ConvertFromDateTimeOffset(DateTimeOffset dateTime)
{
if (dateTime.Offset.Equals(TimeSpan.Zero))
return dateTime.UtcDateTime;
else if (dateTime.Offset.Equals(TimeZoneInfo.Local.GetUtcOffset(dateTime.DateTime)))
return DateTime.SpecifyKind(dateTime.DateTime, DateTimeKind.Local);
else
return dateTime.DateTime; //Kind = Unspecified
}

关于c# - DateTimeZoneHandling.RoundtripKind 未保留日期时间时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30065721/

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