首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.NET格林威治标准时间

.NET格林威治标准时间
EN

Stack Overflow用户
提问于 2009-09-12 22:50:43
回答 2查看 4.1K关注 0票数 7

有没有办法将1970年1月1日格林尼治标准时间转换为日期时间?

如果我只指定新的日期(1970,1,1),我将使用当前时区获取它。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-09-12 23:10:02

等于 (协调世界时),或多或少(除非你处理的是秒的分数,没有区别)。是DateTime构造函数中内置的一个枚举,它允许您选择是按本地时区显示时间还是按协调世界时显示时间。使用它,我们可以实现GMT的等价物。

我们要使用的构造函数如下所示:

代码语言:javascript
复制
DateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, DateTimeKind kind)

(一个有毫秒参数,另一个没有):

代码语言:javascript
复制
DateTime(int year, int month, int day, int hour, int minute, int second, DateTimeKind kind)

要在UTC中获取 1970年1月1日的DateTime,我们可以使用以下命令:

代码语言:javascript
复制
DateTime inGMT = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc); //using 1st constructor above

代码语言:javascript
复制
DateTime inGMT = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); //using 2nd constructor above

注意:枚举DateTimeKind的内容如下:

未指定的本地时间(可以是本地时间或UTC)

  • Utc

  • Local

UPDATE:Thomas Levesque在他的答案中提出了一个非常有创意的解决方案,但我不确定它是否是最直接的方法,以及它是否是一个可行的方法,可以在任何时区使用。我认为他的意思是,您可以从DateTime.Now和DateTime.UtcNow,计算DateTimeOffset,并将计算出的偏移量应用到您所在时区的1970年1月1日,这样您就可以得到协调世界时/格林尼治标准时间。我不确定有没有简单的方法来计算到其他时区的偏移量,然后这个问题就变得有点多余了。

更新#2:我添加了另一个DateTime构造函数,它完成相同的任务,但缺少毫秒参数。它们是可互换的。

票数 6
EN

Stack Overflow用户

发布于 2009-09-12 22:55:09

出于所有实际目的,GMT与协调世界时是相同的。

这意味着您可以只使用一个接受DateTimeKind参数的DateTime constructors,将其设置为DateTimeKind.Utc

代码语言:javascript
复制
DateTime gmt = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1416355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档