Содержание

Время и его передача

Задача

Обеспечить корректную обработку времени с учетом часовых поясов.

Решение

Наиболее простым для понимания и реализации решением является гарантированная передача значения часового пояса. Это позволяет при сравнении времен работать с «абсолютным» временем, т.е. переводить в UTC и обратно без потери информации, что облегчает сравнение 2 моментов времени с указанием разных часовых поясов. Предполагается хранение/обработка/передача времени строго в форматах (локальное время + часовой пояс) либо UTC в соответствии со стандартом ISO-8601.

Сериализация

Локальное время + часовой пояс:

2016-02-16T05:03:57+05:00

То же время в UTC:

2016-02-16T00:03:57Z

Рекомендуемые типы данных для стека технологий .NET:
CLR: DateTimeOffset.
SQL Server: datetimeoffset.
Библиотека-сериализатор: Json.Net (используется в WebAPI 2 по-умолчанию). Serializing Dates in Json.Net.