首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UTC/ Breeze时区

UTC/ Breeze时区
EN

Stack Overflow用户
提问于 2018-07-21 06:32:29
回答 1查看 80关注 0票数 0

我正在使用Breeze,遇到了一些日期/时间问题。

我在表单中有一个字段,带有日期时间选择器,返回值为07/20/2018 14:00。在本例中,假设我在CST时区(GMT -0500)。我想要做的是将该值传递给我的Breeze实体管理器,并将其正确地保存在我的数据库中。我将日期放入一个变量中:

代码语言:javascript
复制
dateVariable = ctx.ChosenTime; 

这是可行的,并将值07/20/2018 14:00放入变量dateVariable中。

我创建了一个新实体:

代码语言:javascript
复制
var newEntity = entityManager.createEntity('Test Entity', {Date: dateVariable};

当我调试和检查newEntity的值时,它有一个名为Date的属性,该属性具有适当的值。但是,一旦我调用entityManager.SaveChanges(),然后返回返回值,它将显示为07/20/2018 19:00。由于Breeze正在处理显示值(通过数据绑定),我不确定为什么会发生这种情况。任何建议都将不胜感激。谢谢

EN

回答 1

Stack Overflow用户

发布于 2018-07-22 02:57:59

当JSON响应来自服务器时,如果日期字符串没有时区说明符,Breeze会假定它采用UTC格式,并在解析前在末尾加上一个"Z“。因此,在往返到服务器之后,它会将您的本地时间转换为UTC。解决方案是:

  1. 将服务器端属性更改为DateTimeOffset或类似的数据类型,以保留日期的时区。这样,返回的日期将有一个时区。
  2. 告诉Breeze不要添加"Z“,只需将日期解释为本地时间。有关更多信息,请参见this SO answer
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51451163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档