我正在用timeIntervalSince1970
转换我当前的日期
我收到的是哪个时区?目前我在迪拜时区;这是UTC格式的转换日期?
let epochTime = Date().timeIntervalSince1970
Date
是一个绝对的时间点。它没有时区。如果您在“1970年1月1日00:00:00 UTC”开始使用秒表,那么timeIntervalSince1970
的结果将是秒表上已经过的秒数。如果你把秒表放在飞机上并在世界任何地方飞行都没关系。你可以飞向月球。没关系。将经过相同的秒数(忽略相对论效应和偶尔的闰秒以使其与地球变化的旋转速度保持同步)。
只有当您想要将绝对时间点转换为人类可读的字符串(在这种情况下,您使用DateFormatter
)或者您想将其转换为日历单位(使用DateComponents
和特定的Calendar
)时,时区才有用。
很多混乱来自打印Date
对象,其中出现类似“2018-11-15 14:19:27 +0000”的东西,但这并不意味着时间点是“在”+0000“时间内区。这只是一种方便的格式,可以显示给程序员以协助调试。如果你想要一个字符串,你必须使用DateFormatter
。
timeIntervalSince1970
返回的值是自“1970-01-01 00:00:00.000”之后的TimeInterval(又名Double),以秒为单位,直到特定时间戳为止。