Twitter时间到当地时间c#

时间:2012-07-27 19:36:28

标签: c# timezone

如何将用户发布的推文转换为本地时间? created_at为我提供了创建推文的时间,它基于用户的国家/地区,如何使用c#将其更改为我的本地时间。时间的格式是“Fri Jul 27 15:14:11 +0000 2012”。 utc_offset是什么意思,它们如何用来改变时区?

我对时区的东西并不熟悉,谢谢你的帮助:)。

2 个答案:

答案 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选择的时区中。