Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.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# NET中的时区问题_C#_Datetime_.net 4.0_Timezone - Fatal编程技术网

C# NET中的时区问题

C# NET中的时区问题,c#,datetime,.net-4.0,timezone,C#,Datetime,.net 4.0,Timezone,我在东海岸,所以我的时区是东部标准时间,偏移量为-05:00:00。但是我注意到,当调用像DateTimeOffset.UtcNow和DateTime.Now.ToUniversalTime()这样的方法时,它只是声称我的偏移量为-04:00:00 DateTime.Now // 6/8/2011 8:08:26 PM DateTime.UtcNow // 6/9/2011 12:08:26 AM DateTimeOffset.UtcNow // 6/9/2011 12:08:26 AM +

我在东海岸,所以我的时区是
东部标准时间
,偏移量为
-05:00:00
。但是我注意到,当调用像
DateTimeOffset.UtcNow
DateTime.Now.ToUniversalTime()
这样的方法时,它只是声称我的偏移量为
-04:00:00

DateTime.Now
// 6/8/2011 8:08:26 PM

DateTime.UtcNow
// 6/9/2011 12:08:26 AM

DateTimeOffset.UtcNow
// 6/9/2011 12:08:26 AM +00:00

DateTime.Now.ToUniversalTime()
// 6/9/2011 12:08:26 AM

TimeZoneInfo.ConvertTimeToUtc(DateTime.Now)
// 6/9/2011 12:08:26 AM

TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now)
// -04:00:00

TimeZone.CurrentTimeZone.StandardName
// Eastern Standard Time

TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time").BaseUtcOffset
// -05:00:00

正如你所看到的,尽管它清楚地说我在“东部标准时区”,但它只计算我的偏移量为
-05:00:00
。我还验证了我的windows时钟是否显示我在正确的时区。有人知道这里发生了什么吗?

可能和夏天有关。你现在不是在东部夏令时吗?这是UTC减4。

可能与夏天有关。你现在不是在东部夏令时吗?这是UTC减4。

我认为它是-4,因为它现在是夏令时。

我认为它是-4,因为它现在是夏令时。

如果是这样的话,我在进行转换时应该如何考虑这一点?取决于您进行转换的目的。如果他们依赖于EST,而不是你现在的实际时区,使用一个给你-5。否则,请使用提供-4的应用程序。当我过去编写跨越不同时区的应用程序时,我发现存储UTC日期/时间比存储本地时间更容易。这样,我只需将时间转换为本地时区。@标记如果要将服务器上的时区转换为用户的时区,我该如何做?如果我知道用户所在的时区,那么应该严格地在客户端进行转换,还是在服务器上正确地进行转换?如果是这样,在进行转换时,我应该如何考虑这一点?取决于您进行转换的目的。如果他们依赖于EST,而不是你现在的实际时区,使用一个给你-5。否则,请使用提供-4的应用程序。当我过去编写跨越不同时区的应用程序时,我发现存储UTC日期/时间比存储本地时间更容易。这样,我只需将时间转换为本地时区。@标记如果要将服务器上的时区转换为用户的时区,我该如何做?如果我知道用户所在的时区,那么应该严格地在客户端进行转换,还是在服务器上正确地进行转换?