Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.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,任何比较来自不同时区的2个日期时间的方法。我有一个来自服务器的日期时间UTC+3:00,本地机器上的日期时间UTC+6:00。如何比较这两个DateTimes,以便DateTime1(服务器)何时>=DateTime2(客户端),以便我可以做些什么 附言 是的,我知道如何比较日期时间,但当它们位于不同的时区时,我不知道如何进行比较。假设您有两个DateTime对象,它们在时间上表示相同的时刻,但在不同的时区 DateTime dt1 = DateTime.Now.AddHours(3); Dat

任何比较来自不同时区的2个日期时间的方法。我有一个来自服务器的日期时间UTC+3:00,本地机器上的日期时间UTC+6:00。如何比较这两个DateTimes,以便DateTime1(服务器)何时>=DateTime2(客户端),以便我可以做些什么

附言
是的,我知道如何比较日期时间,但当它们位于不同的时区时,我不知道如何进行比较。

假设您有两个DateTime对象,它们在时间上表示相同的时刻,但在不同的时区

DateTime dt1 = DateTime.Now.AddHours(3);
DateTime dt2 = dt1.AddHours(3);

// change kind to unspecified
dt1 = new DateTime(dt1.Ticks, DateTimeKind.Unspecified);
dt2 = new DateTime(dt2.Ticks, DateTimeKind.Unspecified);

// append the offset for each time
var offset1 = new DateTimeOffset(dt1, TimeSpan.FromHours(3));
var offset2 = new DateTimeOffset(dt2, TimeSpan.FromHours(6));

// compare
bool areEqual = offset1.Equals(offset2); // true

尽管上述方法可行,但我强烈建议您考虑一下:一个用于.NET的替代日期和时间API,它使时区的工作更加明确和高效,并迫使您在DST情况下做出明确的决定。此外,API还引入了更多类型来处理不同的场景,在您的情况下,您需要使用
ZoneDateTime

最简单的方法是使用UTC时间。那么,就没有时区问题了。关于这个问题,存在着很多问题。请展示你的研究和你已经尝试过的东西。如果你没有做过任何研究,请在询问之前先做一下。你能提供一份调查报告吗?对于各种不同的框架,有各种不同的时区解决方案,SSCCE会更好。同样重要的是要知道,
DateTime
对象除了三态
DateTimeKind
之外,不会保留任何时区信息。因此,正如所问,这个问题是无法回答的。你需要提供更多的细节和具体的例子。看见