Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#日期时间序列化问题?_C# - Fatal编程技术网

C#日期时间序列化问题?

C#日期时间序列化问题?,c#,C#,我偶然发现了一些奇怪的行为。我在同一本地网络中的两台不同机器上有发送方和接收方服务,希望通过UdpClient传递此对象: public class SendMe { public DateTime ExpirationDateUtc { get; set;} } new BinaryFormatter().Serialize(stream, obj); return stream.ToArray(); 我是这样创建的: return new SendMe { ExpirationD

我偶然发现了一些奇怪的行为。我在同一本地网络中的两台不同机器上有发送方和接收方服务,希望通过UdpClient传递此对象:

public class SendMe
{
    public DateTime ExpirationDateUtc { get; set;}
}
new BinaryFormatter().Serialize(stream, obj);
return stream.ToArray();
我是这样创建的:

return new SendMe { ExpirationDateUtc = DateTime.UtcNow }; 
然后我只通过BinaryFormatter使用序列化:

public class SendMe
{
    public DateTime ExpirationDateUtc { get; set;}
}
new BinaryFormatter().Serialize(stream, obj);
return stream.ToArray();
和在接收端反序列化:

return (SendMe)new BinaryFormatter().Deserialize(stream);
接下来发生的事情是我得到的时间差(UtcNow不应该给出全局时间戳吗?正好是7秒


是什么导致两台本地网络计算机的时间差?我的Win7和Win10的本地化程度不同。

计算机可能有7秒的时差。在我以前的工作中,每台电脑显示的时间都不一样,有的差异只有5秒,有的差异多达9分钟。显然,它们都在同一个本地网络上。就像沙门所说的,检查以确保它们是同步的。

你检查过两台电脑是否都有同步时钟吗?与互联网时间同步到底有什么区别?显而易见的问题:这个最小的例子真的再现了这个问题吗?第二,如何计算7秒的偏移量?您是否在系统A上登录到控制台并读取“10:00:00”,在系统B上登录到控制台并读取“10:00:07”?我强烈认为这是代码之外的东西,或者是错误的“度量”。若你们只是比较一下本地时钟,那个么…好吧…你们知道…是的,我会在两个系统上实时记录到控制台上。你们会记录收到的值还是本地时钟?请包含该代码是的,问题正处于同步状态!我同步了两台机器,问题就解决了!好东西@eocron06。