3

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

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

4

2 回答 2

3

你会想要使用DateTimeOffset结构。这允许您捕获日期和时间以及与 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);

请注意,虽然没有记录,zzzz 但确实可以作为自定义日期时间格式并成功地正确解析偏移量。这意味着您将来在依赖它时应该小心(除非文档更改以反映此功能)。

一旦有了DateTimeOffset,您就知道与 UTC 的偏移量。如果您想在本地时间获取它,可以调用已解析的ToLocalTime方法DateTimeOffset它将返回一个实例,该实例具有基于您本地设置的偏移量。

于 2012-07-27T20:01:38.547 回答
1

应该是这样的:

DateTime localDateTime = DateTime.ParseExact(dateString, "ddd MMM dd HH:mm:ss zzz yyyy", new CultureInfo("en-US"));

除非您在 DateTime 的构造函数中提供 DateTimeKind,否则 DateTime 将位于工作站/服务器管理员为 Windows 选择的时区中。

于 2012-07-27T19:51:00.653 回答