我相信你可以直接比較兩個DateTimeOffset
。或者,您可以使用UtcDateTime
屬性獲取DateTimeOffset
的UTC值並將其用於比較。
例子:
var eventTime = new DateTimeOffset(2014, 2, 6, 10, 0, 0, 0, TimeSpan.FromHours(3));
var serverTime = new DateTimeOffset(2014, 2, 6, 10, 0, 0, 0, TimeSpan.FromHours(1));
var otherTime = new DateTimeOffset(2014, 2, 6, 10, 0, 0, 0, TimeSpan.FromHours(-1));
Console.WriteLine("\tLocalTime\t\t\tUtcTime\t\tInThePast");
Console.WriteLine("Server\t{0}\t{1}",serverTime, serverTime.UtcDateTime);
Console.WriteLine("Event\t{0}\t{1}\t{2}", eventTime, eventTime.UtcDateTime, eventTime < serverTime);
Console.WriteLine("Other\t{0}\t{1}\t{2}", otherTime, otherTime.UtcDateTime, otherTime < serverTime);
將產生:
LocalTime UtcTime InThePast
Server 2/6/2014 10:00:00 AM +01:00 2/6/2014 9:00:00 AM
Event 2/6/2014 10:00:00 AM +03:00 2/6/2014 7:00:00 AM True
Other 2/6/2014 10:00:00 AM -01:00 2/6/2014 11:00:00 AM False
關於該事件的時間轉換爲UTC,並用'DateTime.UtcNow'比較什麼? – CodesInChaos