我正试图从MongoDB中获取一条具有DateTime属性的记录。此属性是ISODate,但通过完美的MongoDB API作为长数据类型(自1970年以来的毫秒数)接收。
代码如下所示:
if var something = dictionary["Something"] as? [String:Any], var intDate = something["$date"] as? Int64
{
let date = Date(timeIntervalSince1970: TimeInterval(intDate/1000))
}
created["$date"] as? Int64
总是
nil
我试过几种方法,包括使用
Double
和
NSNumber
而不是Int64,但它仍然是
无
.
TimeInterval()
1970年后的秒数需要一个双倍值,因此需要被1000整除,并在该步骤中转换为双倍。
编辑:这是NSNumber代码,其中
intDate
无
let date
线
something
不是零
if var something = dictionary["Something"] as? [String:Any], var intDate = something["$date"] as? NSNumber
{
let date = Date(timeIntervalSince1970: TimeInterval(NSDecimalNumber(decimal:intDate.decimalValue/1000).doubleValue))
}
编辑2:本例的示例词典:
var dictionary : [String:Any] = ["SomethingElse":"SomeOtherData","Something":["$date": 1507710414599]]