从三个变量开始,都是System.DateTime。
a: 10/2/2009 2:30:00 PM
b: 10/2/2009 2:30:00 PM
c: 10/2/2009 2:30:00 PM
将它们相互比较。
a=b: True
b=c: True
c=a: True
好的,我们已经确定所有三个日期都是平等的。因此,当我们将它们全部转换为世界时,我们将得到相同的结果。正确?
a.ToUniversalTime: 10/2/2009 9:30:00 PM
b.ToUniversalTime: 10/2/2009 9:30:00 PM
c.ToUniversalTime: 10/2/2009 2:30:00 PM
那发生了什么?
答案 0 :(得分:8)
来自http://msdn.microsoft.com/en-us/library/system.datetime.touniversaltime.aspx:
从.NET Framework 2.0版开始,ToUniversalTime方法返回的值由当前DateTime对象的Kind属性确定。
答案 1 :(得分:0)
我敢打赌,这与c在与a和b不同的时区有关。
答案 2 :(得分:0)
我同意,c在不同的时区。
Dim a As DateTime = #10/2/2009 2:30:00 PM#
Dim b As DateTime = #10/2/2009 2:30:00 PM#
Dim c As DateTime = #10/2/2009 2:30:00 PM#
If Not (a = b AndAlso b = c AndAlso c = a) Then Stop
a = a.ToUniversalTime
b = b.ToUniversalTime
c = c.ToUniversalTime
If Not (a = b AndAlso b = c AndAlso c = a) Then Stop
'reach here no problem, so one of them was in a different timezone