Дарт DateTime сломан? - PullRequest
       13

Дарт DateTime сломан?

0 голосов
/ 01 июля 2019

Я использую календарь Флаттера, чтобы выбрать дату в своем приложении, но я ограничиваю ее только текущим месяцем.Я делаю это, устанавливая:

  1. firstDate: beginOfMonth (например, 1 июня 2019 г.,
  2. lastDate: beginOfNextMonth (например, 1 июля 2019 г.),
  3. initialdate: DateTime.now ()

Теперь, когда наступил конец месяца (на момент написания статьи 30 июня), я получаю сообщение об ошибке AssertionError, в котором указано initialDate must be on or before lastDate. Поэтому я напечатал (лучший отладчик!) мои даты и я получил:

  1. initialDate: 2019-06-30 20:07:25
  2. endOfMonth: 2019-07-01 00:00:00

Так же, как я ожидал. Но когда я сравниваюдва, я получаю initialDate.isBefore (endOfMonth) == false).

Это просто какая-то человеческая ошибка с моей стороны, или я должен связаться с командой Flutter?

1 Ответ

1 голос
/ 01 июля 2019

Ого, хорошо, поговорим о состоянии гонки. На момент публикации я в GMT-4, а сейчас 8:30. И я использовал DateTime.utc. Таким образом, DateTime.now() будет отображаться как 30 июня, в 8:30 вечера, а время UTC будет пытаться приспособиться к моему часовому поясу и закончится после полуночи, что означало, что технически это был совершенно другой день. Сменили DateTime.utc на DateTime() и проблема была решена!

...