У меня есть дата, которая хранится в наших бэкэнд-системах, например 2019-11-27T00:00:00
. Теперь я хочу использовать эти данные, которые представляют дату и время независимо от часового пояса, как часть документа JSON, который поставляется внешним пользователям.
В настоящее время я использую тип времени Noda Instant
для представления вышеуказанных значений.
InstantPattern.CreateWithInvariantCulture("yyyy-MM-ddTHH:mm:ss").Parse("2019-11-27T00:00:00").Value;
Когда позже я захочу вывести время в документе JSON, я бы хотел преобразовать его в тип, который также может представлять часовой пояс для текущего объекта. Часовые пояса известны.
Например, вышеуказанное значение должно быть представлено в документе следующим образом:
Швеция : 2019-11-27T00:00:00+01:00
Финляндия : 2019-11-27T00:00:00+02:00
Причина, по которой я хочу это сделать, заключается в том, что дата и время в базе данных представляют время, когда событие происходит по местному времени для текущего потребителя данных. Примером может служить распродажа «Черной пятницы», которая начинается в полночь той страны, в которой она совершается, а не в полночь в UT C или аналогично. Установив информацию о часовом поясе в выходных данных JSON, я могу гарантировать, что потребители данных получат правильную информацию.
Все мои попытки использовать ZonedDateTime с момента Мгновенного момента считаются временем UT C, и вывод становится неправильным. Возможно, что-то мне не хватает, но я, к сожалению, застрял.
Мои вопросы:
- Является ли NodaTime правильной библиотекой для этого?
- Мгновенный правильный тип данных для значений базы данных?
- является ли ZonedDateTime правильным способом работы?
- как я могу преобразовать Мгновенный в любой другой тип, который может содержать информацию TimeZone?
Спасибо заранее.