Преобразование даты в целое число в Swift
Я обновляю некоторые из моих старых ответов Swift 2 на Swift 3. мой ответ: to этот вопрос, однако, нелегко обновить, так как вопрос конкретно запрашивает NSDate
, а не Date
. Поэтому я создаю новую версию этого вопроса, для которой я могу обновить свой ответ.
вопрос
если я начну с Date
экземпляр такой
let someDate = Date()
как бы я конвертировать в целое число?
родственные, но разные
эти вопросы задают разные вещи:
1 ответов
Date
to Int
// using current date and time as an example
let someDate = Date()
// convert Date to TimeInterval (typealias for Double)
let timeInterval = someDate.timeIntervalSince1970
// convert to Integer
let myInt = Int(timeInterval)
делать Double
до Int
преобразование приводит к потере миллисекунд. Если вам нужны миллисекунды, то умножьте на 1000 перед преобразованием в Int
.
Int
to Date
включая обратное для полноты.
// convert Int to Double
let timeInterval = Double(myInt)
// create NSDate from Double (NSTimeInterval)
let myNSDate = Date(timeIntervalSince1970: timeInterval)
я мог бы также использовать timeIntervalSinceReferenceDate
вместо timeIntervalSince1970
пока я был последователен. Это предполагает, что интервал времени составляет секунды. Отмечать что Java использует миллисекунд.
Примечание
- для старого синтаксиса Swift 2 с
NSDate
см. ответ.