Я пытаюсь использовать moment.js для преобразования моих дат на стороне клиента. Я собираюсь дать точные спецификации.Moment.js: Преобразование даты UTC из базы данных в местное время
Даты хранятся на сервере с использованием DateTime.UtcNow
в C#. Они сохраняются в базе данных и выглядят так: 2014-06-02 21:37:40.087
, поэтому примерно 9:37 вечера в UTC. Я на западном побережье США, так что переводится в 2:37 вечера PST.
Когда эти строки считываются с прикладного уровня и отправляются в браузер в JSON, он разрешает эту строку "2014-06-03T04:37:40.087Z"
.
Что такое расхождение в том, как оно хранится в базе данных по сравнению с тем, как оно выходит в тексте JSON?
Мэтт, вы были совершенно правы. При получении даты из БД я не использовал 'DateTime.SpecifyKind()' перед отправкой их в браузер. Вы знаете какой-либо способ сделать «вид» по умолчанию для UTC DateTime для всего приложения, или это невозможно? – DJKempner
Нет, это невозможно. Каждое значение 'DateTime' является независимым. Возможно, вы захотите прочитать [What's Wrong with DateTime Anyway] (http://noda-time.blogspot.com/2011/08/what-wrong-with-datetime-anyway.html), [More Fun with DateTime] (http : //msmvps.com/blogs/jon_skeet/archive/2012/05/02/more-fun-with-datetime.aspx) и [The Case Against DateTime.Now] (http://codeofmatt.com/2013/ 04/25/случая, против-DateTime, теперь /). Вы можете также рассмотреть [Noda Time] (http://nodatime.org) в качестве альтернативы. –