我有一个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()
仍然没有。谢谢。
答案 0 :(得分:0)
问题在于,当您对datetime进行系列化时,日期时间将转换为等效的utc时间并附加偏移量。所以当你在不同的utc上对它进行去逐化时,不同的utc会被添加。
黄金法则总是使用UTC(世界各地的UTC时间相同),转换应该是动态的。
就像datetime now = datetime.now.touniversal;
立即序列化
现在对任何utc(将是本地等效的)进行desearialize