Sergey9966
Дата: 06.11.2018 22:02:59
В общем - задачка простая относительно. Но с никогда ничего не писал для работы в разных часовых поясах и тут начались проблемы... Замучался в некотором смысле... То есть получается у меня в Японии +8GTM, открывается магазин в 10:00 часов значит. Мне нужно в Канаде, где -5GTM вычислить и выдать:
1. Сколько до этого события осталось времени в Канаде
2. Учитывая, что я вообще в МСК - знать когда это все будет по Московскому времени... Ну то есть написать, когда в МСК случится...
Вроде бы все просто, но я уже голову поломал. Пишу на C# (только начал), ну и на php (в принципе) - просьба на JAVA не писать сложно, у меня от самой задачки мозги в кучу... :(
fixxer
Дата: 07.11.2018 11:21:22
На джаве, но не сложно
// Локальное время открытия
LocalTime openTime = LocalTime.of(10, 00);
// Сегодня в Токио
ZonedDateTime tokyoTime = ZonedDateTime.of(openTime.atDate(LocalDate.now()), ZoneId.of("Asia/Tokyo"));
System.out.println(tokyoTime);
// В Москве
ZonedDateTime moscowTime = tokyoTime.withZoneSameInstant(ZoneId.of("Europe/Moscow"));
System.out.println(moscowTime);
// В Торонто
ZonedDateTime torontoTime = tokyoTime.withZoneSameInstant(ZoneId.of("America/Toronto"));
System.out.println(torontoTime);
2018-11-07T10:00+09:00[Asia/Tokyo]
2018-11-07T04:00+03:00[Europe/Moscow]
2018-11-06T20:00-05:00[America/Toronto]
Sergey9966
Дата: 07.11.2018 13:35:48
fixxer,
Спасибо, выглядит очень красиво и лаконично... Нужно только чуть понять что в это JAVA все это значит, кажется считанные пара методов. Аж не верится, что это так может быть вообще коротко.
Sergey9966
Дата: 07.11.2018 13:38:33
Dima T,
Так и начала делать - решил что сделаю массив просто и буду по нему ходить, т.к. уже совсем не мог понять расчеты с датами. Ладно еще один часовой пояс, но тут у меня все сошло с привычного понимания. Может ездил бы я 10 раз в год в командировку - легко бы ориентировался.
То есть задача совсем не тривиальна для меня, в силу отсутствия представления об этом...