4

奇怪的事情发生在这里。以下代码:

String(Int(date.timeIntervalSince1970*1000))

在操场上工作,但不在课堂上。它与 EXC_BAD_INSTRUCTION 一起崩溃。

任何想法为什么?或者,我如何获得上述字符串NSTimeInterval

提前致谢!

编辑:例如,我需要结果为 Int,所以 1402324472549 而不是 1402324472549.64。

4

3 回答 3

4

在类定义中:

var date = NSDate()
let myDateString = String(Int64(date.timeIntervalSince1970()*1000))
println("Seconds = \(myDateString)")
于 2014-06-09T16:49:03.410 回答
2

不确定根本原因,但它与类型转换有关。这有效:

var date = NSDate()
var asString = "\(Int(date.timeIntervalSince1970*1000))"
println(asString)
于 2014-06-09T14:13:53.070 回答
2

崩溃是因为您溢出了 32 位有符号整数,并且默认情况下 swift 会对所有操作进行边界检查。尝试:

"\(floor(date.timeIntervalSince1970)"
于 2014-06-09T16:34:42.277 回答