Почему мой getTimeZone (). GetDisplayName сообщает о неправильном смещении? - PullRequest
0 голосов
/ 28 декабря 2018

Я тестирую свое приложение в разных часовых поясах.Я вручную изменил часовой пояс моего физического телефона на Лондонский Великобритания, который является GMT + 00: 00

Однако, когда я печатаю часовой пояс с использованием myCalendar.getTimeZone().getDisplayName(true, TimeZone.SHORT), он печатает:

GMT+01:00

Почему к смещению добавляется час?

РЕДАКТИРОВАТЬ:

Установив для первого параметра getDisplayName значение false, я получаю правильное значениеGMT+00:00 но я не уверен, почему я должен установить его в false.Насколько я знаю, Лондон Великобритания всегда GMT+00:00?Я не прав?

Ответы [ 2 ]

0 голосов
/ 28 декабря 2018

Насколько я знаю, Лондон Великобритания всегда GMT + 00: 00?Я не прав?

Да, вы не правы.Соединенное Королевство соблюдает среднее время по Гринвичу (GMT) зимой и наблюдает за переходом на летнее время, которое местно называется «британское летнее время» (BST), летом.

  • GMT = UTC + 00:00
  • BST = UTC + 01: 00

Ссылка здесь и здесь .

0 голосов
/ 28 декабря 2018

Согласно API, первый параметр getDisplayName () указывает, следует ли использовать летнее время.

Возвращает имя в указанном стиле этой временной зоны, подходящей для представления пользователю в локали по умолчанию.Если заданный дневной свет равен true, возвращается название летнего времени (даже если этот часовой пояс не соблюдает летнее время).В противном случае возвращается имя стандартного времени.

Вероятно, поэтому время на час впереди с этим значением, установленным в значение true, поскольку значение true приведет к переходу на летнее время, даже если оно не установлено.не наблюдалось в этом часовом поясе.

...