Swift에서 Unix Epoch Time 가져오기
Swift에서는 에폭의 초수를 어떻게 구합니까?
NSDate를 사용하면timeIntervalSince1970
기능.
let timeInterval = NSDate().timeIntervalSince1970
Swift 3.0의 경우
Date().timeIntervalSince1970
당신은 다음을 사용하여 그것을 얻을 수 있다.
Int(Date().timeIntervalSince1970)
이것은 현재 날짜용입니다. 지정된 날짜에 가져오려면
Int(myDate.timeIntervalSince1970)
UNIX 시간 에폭에서 Swift 날짜 시간으로 다시 변환하려면 다음을 사용할 수 있습니다.
let date = Date(timeIntervalSince1970: unixtEpochTime)
1초 = 1,000 밀리초
1초 = 1,000,000 마이크로초
스위프트의timeIntervalSince1970
「밀리초 미만」의 정밀도로 초수를 반환합니다.보통 마이크로초를 의미하지만, 경우에 따라서는 소수점 오른쪽의 1자리 눈금보다 작거나 큰 값을 의미하기도 합니다.5자리(10진수 이후 5자리)의 스케일이 반환되면 Swift는 6자리 정밀도를 낼 수 없을 것이고, 7자리 정밀도를 반환하면 마이크로초 이상이기 때문에 추가 자리수가 잘릴 수 있습니다.그 때문에,
let secondPrecision = Int(Date().timeIntervalSince1970) // definitely precise
let millisecondPrecision = Int(Date().timeIntervalSince1970 * 1_000) // definitely precise
let microsecondPrecision = Int(Date().timeIntervalSince1970 * 1_000_000) // most-likely precise
즉, 밀리초 정밀도는 진정한 Unix 타임스탬프이며 모두가 사용해야 할 것입니다.API나 Unix 타임스탬프를 사용하는 프레임워크로 작업하는 경우 밀리초 단위의 정확도가 될 수 있습니다.따라서 Swift의 진정한 Unix 타임스탬프의 경우:
typealias UnixTimestamp = Int
extension Date {
/// Date to Unix timestamp.
var unixTimestamp: UnixTimestamp {
return UnixTimestamp(self.timeIntervalSince1970 * 1_000) // millisecond precision
}
}
extension UnixTimestamp {
/// Unix timestamp to date.
var date: Date {
return Date(timeIntervalSince1970: TimeInterval(self / 1_000)) // must take a millisecond-precise Unix timestamp
}
}
let unixTimestamp = Date().unixTimestamp
let date = unixTimestamp.date
2038년에는 32비트 번호를 Unix 타임스탬프에 사용할 수 없습니다.64비트여야 하지만 Swift가 자동으로 처리하여 안전하게 사용할 수 있도록 합니다.Int
(사용할 필요가 없습니다).Int64
명시적으로).
Linux 등의 용도로 Foundation을 Import하지 않는 경우 CoreFoundation에서 다음을 사용할 수 있습니다.
import CoreFoundation
let timestamp = CFAbsoluteTimeGetCurrent() + kCFAbsoluteTimeIntervalSince1970
언급URL : https://stackoverflow.com/questions/25096602/get-unix-epoch-time-in-swift
'source' 카테고리의 다른 글
IBOutlet 및 IBAtion (0) | 2023.04.09 |
---|---|
도대체 왜 Excel이 같은 이름의 파일 2개를 처리할 수 없는 거죠? (0) | 2023.04.09 |
Windows에서 Git에서 파일 실행 모드 권한을 만드는 방법은 무엇입니까? (0) | 2023.04.09 |
루트 뷰 컨트롤러를 입수하는 방법 (0) | 2023.04.09 |
VBA에서 현재 워크시트의 경로를 얻는 방법은 무엇입니까? (0) | 2023.04.09 |