ios - 尝试将日期转换为时间戳,但是当我将其转换回日期时,日期不一致

标签 ios swift nsdate

let timestamp = (NSDate().timeIntervalSince1970)
let date = NSDate(timeIntervalSinceReferenceDate: (timestamp))

print(NSDate())   // 2016-08-20 18:24:17 +0000
print(timestamp) //  1471717652.15506
print(date)     //   2047-08-21 18:24:17 +0000

如何使时间戳一致?

最佳答案

您的问题并不完全清楚,但我怀疑您希望第一个和第三个 print 语句相同。假设这是真的,您需要修复第一行或第二行代码以使用相同的纪元。

第一行使用“1970”纪元。第二行使用 Cocoa“引用日期”纪元。他们不一样。更改两行之一以匹配另一行。

您想要:

let timestamp = (NSDate().timeIntervalSinceReferenceDate)
let date = NSDate(timeIntervalSinceReferenceDate:timestamp)

或者:

let timestamp = (NSDate().timeIntervalSince1970)
let date = NSDate(timeIntervalSince1970:timestamp)

关于ios - 尝试将日期转换为时间戳,但是当我将其转换回日期时,日期不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39057431/

相关文章:

ios - Swift 编译器警告我在覆盖 getter 时必须使用 self

ios - NSDateFormatter "dateFromString"返回零

iphone - 在 MAC M/C 中安装电话 g​​ap 1.4.1.dmg 时出现错误

ios - UITextField 不允许第三方键盘

ios - UITextField 子类,下方有栏 : bar not going all the way

ios - 比较 2 个日期让我在 IOS 中少了 1 天

ios - 无论如何将 UITextfield 中的字符数限制为 5?

ios - SwiftUI HStack slider 不出现

ios - (Swift) 从用户输入设置 UIDatePicker View

arrays - Swift countDown 定时器逻辑