【发布时间】:2017-05-02 18:42:09
【问题描述】:
我在我的 UI 中通过这个 angularjs date picker 设置了一个日期。它被设置为 moment.js 对象,它包括我的时区(东部)的 GMT 偏移量。当我将时刻对象提交回我的 Asp.net Core 端点时,时间将转换为没有偏移的时间。因此,例如,当我在 javascript 时刻对象对象中检查日期时:
timeIn: Fri Dec 16 2016 05:00:00 GMT-0500 (Eastern Standard Time)
当我在 .net core 中检查我的对象时:
TimeIn: 12/16/2016 10:00:00AM
我希望后端的数据显示为在 UI 上输入的确切时间,而不考虑时区。因此,如果他们进入上午 5:00,则后端应存储的时间为上午 5:00。当 moment 对象转换为 JSON 以发送到后端时,它似乎会更改值。当我在 UI 上对我的 timeIn 对象执行 JSON.stringify() 时,我得到:
"2016-12-16T10:00:00.000Z"
有没有办法从前端的时区中剥离偏移数据,以便输入的时间与发送的时间完全相同?
附:我知道有很多关于时间的问题,但我无法找到适合我的情况的问题。感谢您的帮助
编辑:我正在使用 .net DateTime 对象来接受 javascript 日期对象。
【问题讨论】:
-
如果您切换到 DateTimeOffset,您的生活会变得更轻松。
-
我相信 DateTimeOffset 标识了一个时间点,因此它会考虑时区。例如,如果用户输入凌晨 5 点的 timeIn 并且他们在太平洋时区,然后东部时区的主管查看该时间条目,我的应用程序应该向主管显示早上 5 点,而不是早上 8 点.我需要输入的时间向任何用户显示相同的时间,无论他们在哪个时区。
标签: javascript asp.net angularjs asp.net-core