如何将用户发布的推文转换为本地时间? created_at为我提供了创建推文的时间,它基于用户的国家/地区,如何使用c#将其更改为我的本地时间。时间的格式是“Fri Jul 27 15:14:11 +0000 2012”。 utc_offset是什么意思,它们如何用来改变时区?
我对时区的东西并不熟悉,谢谢你的帮助:)。
答案 0 :(得分:3)
您需要使用DateTimeOffset
structure。这允许您捕获日期和时间以及与UTC的偏移。
您想要用于Twitter时间的格式是:
string twitterDate = "Fri Jul 27 15:14:11 +0000 2012";
DateTimeOffset dt = DateTimeOffset.ParseExact(twitterDate,
"ddd MMM dd HH:mm:ss zzz yyyy", CultureInfo.InvariantCulture);
请注意while not documented, zzzz
does work as a custom date time format并成功正确解析偏移量。这意味着您将来应该小心依赖它(除非文档发生变化以反映此功能)。
获得DateTimeOffset
后,您就知道了与UTC的偏移量。如果您想在 当地时间内获取它,可以调用已解析的DateTimeOffset
上的ToLocalTime
method,它将返回一个基于您的偏移的实例本地设置。
答案 1 :(得分:1)
应该是这样:
DateTime localDateTime = DateTime.ParseExact(dateString, "ddd MMM dd HH:mm:ss zzz yyyy", new CultureInfo("en-US"));
除非您在DateTime的构造函数中提供DateTimeKind,否则DateTime将位于工作站/服务器管理员为Windows选择的时区中。