DateTime对象在不同的​​PC上具有不同的时间

时间:2013-11-06 07:38:04

标签: vb.net datetime utc

我有一个DateTime对象:

Dim MyDate As DateTime = New DateTime(2013, 11, 6, 8, 30, 0)

接下来,我有一个DataTable,其中第一列的类型为DateTime。当我将此表序列化为二进制文件并稍后从文件反序列化为DataTable时,一切正常。

我的问题是,如果我在具有不同UTC的PC(例如UTC + 8)上使用日期序列化此表,并在具有UTC + 1的PC上反序列化该表,则时间不是8:30(如在片段中一样) )但是1:30。你能告诉我,无论在PC上设置什么UTC,我怎么能有相同的时间?我也尝试了这个:

Dim MyDate As DateTime = New DateTime(2013, 11, 6, 8, 30, 0, DateTimeKind.Local)

或者:

MyDate.ToLocalTime()

仍然没有。谢谢。

1 个答案:

答案 0 :(得分:0)

问题在于,当您对datetime进行系列化时,日期时间将转换为等效的utc时间并附加偏移量。所以当你在不同的utc上对它进行去逐化时,不同的utc会被添加。

黄金法则总是使用UTC(世界各地的UTC时间相同),转换应该是动态的。

就像datetime now = datetime.now.touniversal;

立即序列化

现在对任何utc(将是本地等效的)进行desearialize