如何解决如何使SignalR停止更改日期/时间值?
我有一个包含DateTime属性的简单类。当我使用DateTime.Now()设置此属性的值时,该值是正确的。但是,当我通过SignalR将该类对象作为参数传递时,在接收端SignalR更改了DateTime,使其不再与原始DateTime相匹配。如何获得SignalR停止操纵我的DateTime值?这个问题似乎始于对最新SignalR nuget软件包的最新更新。
当中心和客户端位于两个不同的时区时,这似乎是一个问题。似乎Microsoft试图通过将日期/时间调整为本地时区来提供帮助,但是我想要的是原始值,而不是Microsoft想要的值。
解决方法
当您希望两个系统相互通信时,出于各种原因,我建议始终在UTC中使用DateTime
。您的情况有两种选择:
1-将日期作为字符串string date = DateTime.Now.ToString(CultureInfo.InvariantCulture);
发送,因此在客户端,您只需要像DateTime.Parse(date,CultureInfo.InvariantCulture);
那样分析日期时间即可。
2-以DateTime.UtcNow;
之类的UTC发送日期,因此,如果SignalR
尝试更改日期,它将以DateTime.Kind
作为UTC。在这种情况下,或者您会正确地获取当前日期,或者只是在客户端将本地时间调整为receivedDate.ToLocalTime();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。