【问题标题】:Dart DateTime broken?飞镖日期时间坏了?
【发布时间】:2019-11-11 17:09:05
【问题描述】:

我使用 Flutter 的日历在我的应用中选择一个日期,但我确保将其限制为仅当月。我这样做是通过设置:

  1. firstDate:开始时间(例如,2019 年 6 月 1 日,
  2. lastDate:beginningOfNextMonth(例如,2019 年 7 月 1 日),
  3. 初始日期:DateTime.now()

现在是月底(撰写本文时的 6 月 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 团队?

【问题讨论】:

    标签: datetime flutter dart datetimepicker


    【解决方案1】:

    哇,好的,谈谈比赛条件。在发帖时,我在 GMT-4,现在是 8:30。我正在使用DateTime.utc。所以DateTime.now() 会显示为 6 月 30 日晚上 8:30,UTC 时间会尝试调整到我的时区,并在午夜之后结束,这意味着从技术上讲这是完全不同的一天。将DateTime.utc 换成DateTime(),问题就解决了!

    【讨论】:

    • 哇,我只是在一个非常相似的问题上花了大约 2 个小时 - 将 DateTime.utc 与我的 Datetime.now 进行比较并得到意想不到的结果......读完这篇文章后这一切都说得通了。感谢您发布此信息!
    猜你喜欢
    • 1970-01-01
    • 2019-03-27
    • 2021-07-12
    • 2021-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-04
    • 2021-09-03
    相关资源
    最近更新 更多