我正在获取当前时间的UTC值,并将其转换为纳秒,然后需要将纳秒转回本地时间的日期。
我能够将时间转换为纳秒,再将其转换为日期字符串,但是当我从字符串转换为日期时,时间会变得混乱。
//Date to milliseconds
func currentTimeInMiliseconds() -> Int! {
let currentDate = NSDate()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = format
dateFormatter.timeZone = NSTimeZone(name: "UTC") as TimeZone!
let date = dateFormatter.date(from: dateFormatter.string(from: currentDate as Date))
let nowDouble = date!.timeIntervalSince1970
return Int(nowDouble*1000)
}
//Milliseconds to date
extension Int {
func dateFromMilliseconds(format:String) -> Date {
let date : NSDate! = NSDate(timeIntervalSince1970:Double(self) / 1000.0)
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = format
dateFormatter.timeZone = TimeZone.current
let timeStamp = dateFormatter.string(from: date as Date)
let formatter = DateFormatter()
formatter.dateFormat = format
return ( formatter.date( from: timeStamp ) )!
}
}
时间戳是正确的,但返回的日期不正确。
currentTimeInMiliseconds()
函数中)? - vadianNSDate
只是一个双精度浮点数,不考虑时区。 - vadian