我正在使用timeIntervalSince1970
我在哪个时区接收? 目前我在迪拜时区;这个转换的日期是UTC格式吗?
let epochTime = Date().timeIntervalSince1970
答案 0 :(得分:5)
Date
是绝对时间点。它没有时区。如果您在“ 1970年1月1日UTC 00000:00”启动了秒表,则timeIntervalSince1970
的结果将是该秒表所经过的秒数。如果您将秒表放在飞机上并在世界上任何地方飞行,都没关系。你可以飞向月球。没关系将会经过相同的秒数(忽略相对论效应和偶尔的leap秒,以使其与地球不断变化的旋转速度保持同步)。
仅当您要将绝对时间点转换为人类可读的字符串(在这种情况下,您使用DateFormatter
)或要将其转换为日历单位(使用{{ 1}}和特定的DateComponents
)。
打印Calendar
对象会引起很多混乱,这些对象带有类似“ 2018-11-15 14:19:27 +0000”的字样,但这并不意味着时间点是“在““ +0000”时区。这只是一种方便的格式,可显示给程序员以帮助调试。如果需要字符串,则必须使用Date
。
答案 1 :(得分:1)
从timeIntervalSince1970
返回的值是从日期'1970-01-01 00:00:00.000'开始的TimeInterval(又称Double),以秒为单位,直到指定的时间戳记为止。