Завершая основную тему этой недели, сегодня я ясно осознал важность последовательности при работе с местными датами по сравнению с датами в формате UTC. Это довольно очевидно, но легко ошибиться.

В частности, я узнал, что по умолчанию MomentJS все делает по местному времени, если не указано иное. Сюда входят даты синтаксического анализа, которые не указывают, являются ли они датами UTC, датами смещения или датами часового пояса. Поручите MomentJS анализировать дату как UTC, используя, например, moment.utc() (используя Typescript):

const utcToday = moment.utc('2018-01-12', 'YYYY-MM-DD');

Помимо этого, я также повеселился на серверной части с Java Time API, анализируя объекты MonthDay (ожидаемый формат — --MM-DD) и конвертируя LocalDate в MonthDay (MonthDay.from(localDate)) и MonthDay в LocalDate в текущем году (LocalDate.now().with(monthDay)).