首页 > 解决方案 > 获取自行增加的 Unix 时间戳

问题描述

所以基本上我想做的是有一个日期对象

let unixTime = Date().timeIntervalSince1970.advanced(by: -30)

并且随着秒数的流逝而改变 unixTime ,以便 unixTime 从当前时间偏移,而无需我自己增加值。有没有办法在 Swift 中做到这一点?

标签: swiftdateunix-timestamp

解决方案


与其声明unixTime为常量,不如将其声明为计算变量。


例如,如果此代码是结构或类的一部分,我会这样做:

struct Test {
    var unixTime: Date {
        Date().timeIntervalSince1970.advanced(by: -30)
    }

    func tion() {
        //do stuff
    }

    ...
}

如果您在命令式上下文(例如脚本)中需要它,或者您不想弄乱您的类型的命名空间,您可以在本地声明它:

...
doStuff()
var unixTime: Date {
    Date().timeIntervalSince1970.advanced(by: -30)
}
...

无论哪种方式,您都可以像现在一样引用它,但每次都会重新计算它。


推荐阅读