gpt4 book ai didi

swift - 日期之间的错误差异

转载 作者:行者123 更新时间:2023-11-28 06:03:42 24 4
gpt4 key购买 nike

我试图找出 2 个日期之间的天数差异。它返回几天的无效值。甚至它以秒为单位返回错误的差异,这会导致无效的天数。

(lldb) po earliest
▿ 2038-01-16 22:42:52 +0000
- timeIntervalSinceReferenceDate : 1168987372.695472

(lldb) po self
▿ 2038-02-16 22:42:52 +0000
- timeIntervalSinceReferenceDate : 1171665772.695472

(lldb) po Calendar.current.dateComponents([.second], from: earliest, to: self)
▿ second: 2678399 isLeapMonth: false
- second : 2678399
- isLeapMonth : false

以秒为单位的差异应该是 2678400,我已经在一些在线日期差异网站上查看过了。不确定为什么会发生这个奇怪的问题。

最佳答案

将字符串日期转换为日期格式并使用 timeIntervalSince 计算它们之间的差异:

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss Z"

let timeAtPress = dateFormatter.date(from: "2038-01-16 22:42:52 +0000")

let timeAtPress2 = dateFormatter.date(from: "2038-02-16 22:42:52 +0000")

let elapsed = timeAtPress2?.timeIntervalSince(timeAtPress!)
print(elapsed!) //2678400.0

对我来说 Calendar.current.dateComponents 也给出相同的结果:

let elapsed2 = Calendar.current.dateComponents([.second], from: timeAtPress!, to: timeAtPress2!)
print(elapsed2) //second: 2678400 isLeapMonth: false

关于swift - 日期之间的错误差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48838448/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com