组件日期错误
Wrong date from components
这很有趣:
po Calendar.default.date(from: DateComponents(year: 2022, month: 1, hour: 16, minute: 1, second: 1, weekday: 1, weekOfMonth: 1))
▿ Optional<Date>
▿ some : 2021-12-26 23:01:01 +0000
- timeIntervalSinceReferenceDate : 662252461.0
我预计 2022 年 1 月 1 日,但我要到 2021 年 12 月 26 日?为什么要这样做?我做错了什么吗?
这是因为您提供的日期组件相互矛盾。您有 weekDay 1(可能是星期天或星期一,具体取决于您的语言环境)但 2022 年 1 月 1 日是星期六。
(当我认为你的意思是 Calendar.current
时你也使用了 Calendar.default
?)
如果你去掉weekDay
项你会得到正确答案:
Calendar.current.date(from: DateComponents(year: 2022, month: 1, hour: 16, minute: 1, second: 1, weekOfMonth: 1))
// "Jan 1, 2022 at 4:01 PM"
您也可以删除 weekOfMonth
项,因为在指定实际日期时它是多余的。
这很有趣:
po Calendar.default.date(from: DateComponents(year: 2022, month: 1, hour: 16, minute: 1, second: 1, weekday: 1, weekOfMonth: 1))
▿ Optional<Date>
▿ some : 2021-12-26 23:01:01 +0000
- timeIntervalSinceReferenceDate : 662252461.0
我预计 2022 年 1 月 1 日,但我要到 2021 年 12 月 26 日?为什么要这样做?我做错了什么吗?
这是因为您提供的日期组件相互矛盾。您有 weekDay 1(可能是星期天或星期一,具体取决于您的语言环境)但 2022 年 1 月 1 日是星期六。
(当我认为你的意思是 Calendar.current
时你也使用了 Calendar.default
?)
如果你去掉weekDay
项你会得到正确答案:
Calendar.current.date(from: DateComponents(year: 2022, month: 1, hour: 16, minute: 1, second: 1, weekOfMonth: 1))
// "Jan 1, 2022 at 4:01 PM"
您也可以删除 weekOfMonth
项,因为在指定实际日期时它是多余的。