C# 时区的日期时间
在C中#C# 时区的日期时间,c#,datetime,timezone,C#,Datetime,Timezone,在C中# DateTime.Now.Day与DateTime.Now.Date.Day=>实际区别是什么 比如说,当我在PST区域时,比如晚上8点-08/26,当我打电话时 DateTime.Now.Day //26 DateTime.Now.Date.Day //26 比如说,当我在EST区时,比如晚上8点-08/26,当我打电话时 DateTime.Now.Day //27 DateTime.Now.Date.Day //27 我试图从datetime或date中获取Day,因此我想使用
DateTime.Now.Day
与DateTime.Now.Date.Day
=>实际区别是什么
比如说,当我在PST区域时,比如晚上8点-08/26,当我打电话时
DateTime.Now.Day //26
DateTime.Now.Date.Day //26
比如说,当我在EST区时,比如晚上8点-08/26,当我打电话时
DateTime.Now.Day //27
DateTime.Now.Date.Day //27
我试图从datetime或date中获取Day,因此我想使用一个在任何PST/EST/CST时区都可以保持一致的日期,有什么想法吗?绝对没有区别(参见文档)。
.Date
标识符只是从正在使用的DateTime
对象中删除时间信息
如果希望时间一致,请使用UTC时间和属性。简短回答:使用
长答覆:
按表达式和类型系统进行细分:
DateTime
是一种带有几个静态成员的值类型。其中一个成员现在是
。staticNow
属性返回用当前时间值填充的DateTime
结构的实例。但它仍然是DateTime类型的实例
Date
成员可用于DateTime
类型的实例,并返回一个新的DateTime实例,其中时间组件的值为零。但它仍然只是一个DateTime类型的实例
Day
成员可用于DateTime
类型的实例,并返回当月当前日期的整数
首先,您想知道DateTime.Now.Date.Day
和DateTime.Now.Day
之间是否存在差异。从逻辑上讲,你可能会认为没有,但我想在Now
属性中指出一点:它不是魔法。在访问Now
属性并执行.Date.Day
表达式后,代码会运行,时间也会随之流逝。在这段时间内,使用的原始Now
值变得过时。这个表达式非常快,几乎不需要任何时间——但它不是零。如果你不小心,你可能会创造一个比赛条件
第二,你想知道时区和获得一致的日期。这里的诀窍是,你是否真的只关心列出的美国时区,以及你是否会在任何时区的午夜附近有任何时间。但实际上最好的选择是查看DateTime数据类型的另一个成员:它是
.UtcNow
属性。这将返回相同的值,无论您处于哪个时区。您可以使用它来计算一个在所有时区都保持一致的时间。谢谢,DateTime.Now->如果该代码来自服务器端代码(例如,如果服务器位于PST区域),它会给出服务器的时间吗,它会给出PST日期时间值吗?反之亦然,EST?DateTime。现在
给出服务器在任何时区的当前计算机/系统时间,是的。