Если вы выбираете UTC в качестве нейтрального представления часового пояса, что является хорошей идеей, я предлагаю Instant
из java.time
. Instant
- это момент времени. Концептуально у него нет часового пояса. Похоже, это было бы преимуществом. Вы можете переключать часовые пояса все, что вы хотите позже, и ваши моменты времени останутся прежними. Instant
можно проанализировать из строки ISO 8601 в UTC, используя метод parse
(например, 2018-12-31T23:37:45.975Z
). И его toString
производит то же самое, все еще всегда в UTC.
Если вы хотите получить явное представление о том, что ваша дата и время указаны в UTC, вы можете использовать OffsetDateTime
со смещением ZoneOffset.UTC
. Поскольку вы говорите, что в UTC ваши времена всегда , я бы счел это излишним.