【发布时间】:2017-06-17 06:51:43
【问题描述】:
我正在尽力弄清楚如何将 datetimeoffset 字符串持久保存到服务器,以便它正确绑定到 DateTimeOffset 属性。
我试过用这样的东西:
moment.utc().format() + ' +' + new Date().getTimezoneOffset() / 60 + ':00';
这显示为 6/12/2017 22:27 +4:00,我将其作为字符串发送到服务器,但似乎每次都无法解析为 DateTimeOffset 对象。
目前我正在将 Nancy 用于我的 Web API 框架,但我也想知道 Web API 也是如此。
目前我只是发回偏移量并像这样设置 DateTimeOffset 属性:
dto.CommentDate = new DateTimeOffset(DateTime.UtcNow).ToOffset(new TimeSpan(dto.Offset, 0, 0));
有没有更好的方法来做到这一点?我可以发送整个日期而不是仅发送偏移量吗?
【问题讨论】:
-
new Date().getTimezoneOffset() / 60如何解析为+4:00? -
它是一个运行在客户端的JavaScript函数,它也是以'+'为前缀的
-
您应该发布您正在使用的实际代码,OP 中的示例并没有按照您所说的那样做。它将返回一个像“1497327412934+-10”这样的字符串,大多数解析器都无法理解。如果要生成带有主机偏移量的 ISO 8601 日期和时间字符串,请使用
moment().format(),它默认使用 ISO 8601 格式并返回类似“2017-06-12T22:27:00+04:00”的字符串. -
对不起,我已经更新了...我最终改为只捕获偏移量并将其发送到服务器,这就是错误的原因.. ISO 8601 看起来像我想要的...但这看起来就像一个日期时间格式.. 是否有可能以 ISO 8601 格式将该日期作为 UTC 获取?
-
内置的toISOString 这样做:
new Date().toISOString()按规范使用 UTC。
标签: javascript c# nancy datetimeoffset