【问题标题】:Convert NSDate time in milliseconds as Int32 and Int64 in Swift在 Swift 中将 NSDate 时间以毫秒为单位转换为 Int32 和 Int64
【发布时间】:2015-04-14 06:42:59
【问题描述】:

我有一个 Swift NSDate:

var date:NSDate()

并希望获得自 1970 年以来的毫秒数作为 Int32:

let time: Int32 = Int32(date.timeIntervalSince1970*1000)

let time: Int64 = Int64(date.timeIntervalSince1970*1000)

这是正确的做法吗?

【问题讨论】:

    标签: swift nsdate


    【解决方案1】:

    请不要使用 Int32。

    Int32 的值最大为 2^31。那是毫秒,所以大约是 200 万秒。那还不到一个月。您的代码在 1970 年 2 月之前停止工作。

    【讨论】:

    • 所以你建议一直使用 Int64?
    【解决方案2】:

    假设你有

    var date: NSDate()
    

    然后你会使用:

    let time = Int32(date.timeIntervalSince1970 * 1000)
    

    timeIntervalSince1970NSDate 实例的属性。)

    【讨论】:

    • @confile:不,你问的工作方式都不是。我的解决方案可能有点偏离(现在不在 Mac 上),但我相信它应该可以工作。
    • 复制代码时出现拼写错误。我想你和我一样吗?
    • @confile:我不知道(我现在不在 Mac 上)。错误是什么?
    • 没有错误我只是想确认我做对了。
    • 仅供参考,如果您打算在 iPhone 5 等 32 位设备上运行该应用程序,那么该应用程序将会崩溃,因此您应该考虑使用 Int,它的大小取决于平台
    猜你喜欢
    • 1970-01-01
    • 2012-03-08
    • 2011-02-14
    • 2018-03-07
    • 2022-11-27
    • 2016-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多