我相信你可以直接比较这两个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