Насколько я понимаю, с 2018 года Марокко работает по UTC + 01: 00, за исключением того, что по смещению +00: 00 (часто записывается как Z
) в течение месяца Рамадан. Таким образом, вы правы: получение времени в UT C (Z
) сегодня неожиданно, поскольку Рамадан не начинается до конца апреля по григорианскому.
Согласно BB C Марокко в октябре 2018 года ( 1 год 4 месяца go на момент написания) решил остаться на прежнее летнее время (DST) также зимой. Таким образом, я предполагаю, что Стивен C является правильным в комментарии, база данных часовых поясов в вашей Java установке старше октября 2018 года. Java поэтому предполагает стандартное время сейчас и неправильно дает вам время в UT C.
За то, что стоит, я только что получил 2020-02-20T19:08:47.375Z[Africa/Casablanca]
на Java 8 и 2020-02-20T20:06:43.174686+01:00[Africa/Casablanca]
на Java 11. Так что, похоже, мой Java 8 до октября 2018 года, а мой Java 11 новее. Насколько я помню, ни у одного из них не обновлялась база данных часовых поясов после того, как я их установил.
Средство обновления часовых поясов
Поскольку вы используете Oracle Java решение состоит в том, чтобы обновить базу данных часовых поясов Java с помощью инструмента обновления часовых поясов. Смотрите ссылку внизу и следуйте приведенным там инструкциям. Однако было несколько вопросов о переполнении стека по поводу сбоя этого инструмента, поэтому я надеюсь, что вы справитесь. В крайнем случае следует установить совершенно новую среду выполнения Java.
Ссылки