Кроссплатформенная сериализация часовых поясов

Мне нужно сохранить часовые пояса - вместе с другими данными - в файл и прочитать файл с нескольких платформ (Linux, WinRT, Windows Phone 8, OS X, Android, iOS). Вероятными языками являются C++, C#, Java и Objective-C.

Сохранение смещения часового пояса в виде двойного недостаточно для моих нужд, поскольку при этом теряется информация о переходе на летнее время, что важно. В зависимости от даты и часового пояса, 2 часа ночи + 2 часа могут быть 3 часа утра, 4 часа утра или 5 часов утра.

Существует ли универсально поддерживаемый сериализуемый формат часовых поясов?

1 ответ

Кажется, лучший ответ - использовать часовые пояса IANA / Olson / TZDB (которые поддерживаются в системах на основе Unix) и конвертировать их для платформ на основе Windows. Двухстороннее преобразование кажется ненадежным, поэтому наиболее подходящим вариантом, по-видимому, является замена платформы datetime по умолчанию в.NET на NodaTime, как описано в нескольких связанных вопросах:

Другие вопросы по тегам