2016-07-18 40 views
-3

任何方式比較來自不同時區的2個日期時間。我有1個來自服務器的日期時間UTC + 3:00和本地計算機上的UTC + 6:00。如何比較這2個日期時間,所以當DateTime 1(服務器)將> = DateTime 2(客戶端),所以我可以做點什麼。如何比較來自不同時區的日期時間

P.S 咋,我知道如何比較日期時間,但我不知道如何做到這一點,當他們在不同的時區。

+0

最簡單的方法是使用UTC時間。那麼沒有時區hooplah來處理。 –

+1

很多關於此主題的現有問題。顯示你的研究和你已經嘗試過的請。如果您還沒有做過任何調查,請在提問前提出。 –

+0

你能否加入[SSCCE](http://sscce.org/)?對於各種不同的框架有各種不同的時區解決方案,並且SSCCE將幫助 –

回答

1

假設您有兩個DateTime對象代表相同的Instant,但在不同的時區。

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 

儘管上述作品,我強烈建議你看看NodaTime:另一種日期和時間的API,使得與時區確實更加明確,高效和部隊合作.NET你做出顯式的決定DST案例。此外,API引入了更多類型來處理不同的場景,在您的情況下,您需要使用ZonedDateTime