Swift中使用Date()初始化的Date对象时间精度是多少?是否支持毫秒?
Swift中Date()的时间精度说明
Date()初始化的对象完全可以捕获毫秒甚至微秒级时间,精度远高于秒级。你看到print输出只显示到秒,只是因为Date默认的字符串输出格式做了简化,并不是对象本身没有存储更高精度的信息。
你可以通过两种方式验证这一点:
- 使用自定义DateFormatter输出带毫秒的时间
let currentTime = Date() let formatter = DateFormatter() formatter.dateFormat = "yyyy-MM-dd HH:mm:ss.SSS Z" print(formatter.string(from: currentTime))
运行后会输出类似 2022-10-09 17:13:39.456 +0800 的结果,其中.SSS部分就是毫秒。
- 查看时间戳的小数部分
Date的timeIntervalSince1970属性返回从1970年1月1日到当前时间的秒数,是Double类型,小数部分对应秒以下的精度:
let currentTime = Date() let preciseTimestamp = currentTime.timeIntervalSince1970 print(preciseTimestamp) // 示例输出:1665299619.456789
这里的.456789就包含了毫秒和微秒级的时间信息。
实际开发中,Date对象的精度取决于系统底层实现,通常能达到微秒级别,完全满足绝大多数需要高精度时间的场景。
内容的提问来源于stack exchange,提问作者XYZ
相关产品推荐
相关产品推荐

