我正在试图弄清楚如何从timeIntervalSinceDate获取可读的时间量。现在我有一个存储在NSUserDefaults中的密钥“punchInTime”的NSDate,但是当我想找到存储的NSDate“punchInTime”和当前时间之间的差异时,我不知道如何获得可读的时间。我有:
var totalWorkTime = NSDate.timeIntervalSinceDate(punchInTime)
我想将“totalWorkTime”插入字符串中以获得可读的时间量。
任何帮助表示赞赏!感谢。
答案 0 :(得分:8)
修复语法。它应该是:
var totalWorkTime = NSDate().timeIntervalSinceDate(punchInTime)
请注意NSDate
后的括号。如果您不使用括号,并尝试将totalWorkTime
视为NSTimeInterval,则会收到错误Cannot invoke [operator] with an argument list of type ...
如果在变量赋值中指定类型,则可以获得更好的错误消息。错误为(x) -> y is not convertible to y
Swift是一种功能语言。在NSDate
之后没有括号,则totalWorkTime
不是仅仅NSTimeInterval类型的符号,而是函数的符号,它接受NSDate并返回NSTimeInterval。操场上的这种语法显示:
除了我上面所写的内容,zisoft对于这个问题(几乎)是正确的是正确的。另一个小例外是,这个问题是询问Double
(NSTimeInterval
)类型,之前的问题是询问Int
。