我正在使用Breeze,遇到了一些日期/时间问题。
我在表单中有一个字段,带有日期时间选择器,返回值为07/20/2018 14:00。在本例中,假设我在CST时区(GMT -0500)。我想要做的是将该值传递给我的Breeze实体管理器,并将其正确地保存在我的数据库中。我将日期放入一个变量中:
dateVariable = ctx.ChosenTime; 这是可行的,并将值07/20/2018 14:00放入变量dateVariable中。
我创建了一个新实体:
var newEntity = entityManager.createEntity('Test Entity', {Date: dateVariable};当我调试和检查newEntity的值时,它有一个名为Date的属性,该属性具有适当的值。但是,一旦我调用entityManager.SaveChanges(),然后返回返回值,它将显示为07/20/2018 19:00。由于Breeze正在处理显示值(通过数据绑定),我不确定为什么会发生这种情况。任何建议都将不胜感激。谢谢
发布于 2018-07-22 02:57:59
当JSON响应来自服务器时,如果日期字符串没有时区说明符,Breeze会假定它采用UTC格式,并在解析前在末尾加上一个"Z“。因此,在往返到服务器之后,它会将您的本地时间转换为UTC。解决方案是:
DateTimeOffset或类似的数据类型,以保留日期的时区。这样,返回的日期将有一个时区。https://stackoverflow.com/questions/51451163
复制相似问题