Нет, вы неправильно поняли.Wed Apr 10 10:00:00 GMT+03:00 2019
является (текстовое представление) a java.util.Date
, значение которого равно 2019-04-10T07: 00 UTC.Похоже, ваш часовой пояс по умолчанию - GMT + 03: 00, и Date
пытается с вами дружить и печатать время в этом часовом поясе, поэтому оно печатает 10:00:00.13:00, безусловно, будет неправильным, независимо от того, хотите ли вы время в UTC или в вашем собственном часовом поясе по умолчанию.
Класс Date
, возвращаемый из pickup.begin()
, плохо спроектирован и сильно устарел, так что вы можетеЯ хочу рассмотреть, можно ли вместо этого вернуть тип из java.time, современного Java-API даты и времени.Это также может прояснить ситуацию.
Также можно преобразовать этот java.util.Date
объект в его современный аналог java.time.Instant
.Ищите новые методы преобразования, добавленные к старым классам.
Instant instant = pickup.begin().toInstant() ; // Converting legacy `Date` object to modern `Instant` object.
Поиск переполнения стека и чтение Обучающего курса по Oracle , чтобы узнать больше о классах Instant
, OffsetDateTime
и ZonedDateTime
.
Вы можете использовать java.time на старых версиях Android, если добавите ThreeTenABP в свой проект Android.Это Android-адаптация бэкпорта java.time.
Ссылки