Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 时区的日期时间_C#_Datetime_Timezone - Fatal编程技术网

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,因此我想使用

在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,因此我想使用一个在任何PST/EST/CST时区都可以保持一致的日期,有什么想法吗?

绝对没有区别(参见文档)。
.Date
标识符只是从正在使用的
DateTime
对象中删除时间信息

如果希望时间一致,请使用UTC时间和属性。

简短回答:使用

长答覆:

按表达式和类型系统进行细分:

DateTime
是一种带有几个静态成员的值类型。其中一个成员现在是
。static
Now
属性返回用当前时间值填充的
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。现在
给出服务器在任何时区的当前计算机/系统时间,是的。