如何在Swift中获得18位数的当前时间戳? [英] How to get 18-digit current timestamp in Swift?
问题描述
我想得到这样的当前时间戳:
636110767775716756
然而,当我这样做时:
NSDate() .timeIntervalSince1970
它返回如下值:
1475491615.71278
如何访问当前时间戳记我想要的格式?我从这里:
你似乎正在寻找 DateTime.Ticks
在C#中,即自0001-01-01以100纳秒间隔测量的
时间。
您提供的链接中的代码 Swift:将NSDate转换为c#ticks 可以轻松地转换为Swift:
// Swift 2:
扩展名NSDate {
var ticks:UInt64 {
返回UInt64((self.timeIntervalSince1970 + 62_135_596_800)* 10_000_000)
}
}
/ / Swift 3:
扩展日期{
var ticks:UInt64 {
返回UInt64((self.timeIntervalSince1970 + 62_135_596_800)* 10_000_000)
}
}
示例(Swift 3):
让ticks = Date()。 ticks
打印(打勾)// 636110903202288256
或字符串:
let sticks = String(Date()。ticks)
print(sticks)
虽然它们在,但是从刻度到日期
的反向转换将会是
// Swift 2:
扩展名NSDate {
方便init(ticks:UInt64){
self.init(timeIntervalSince1970:Double(ticks)/ 10_000_000 - 62_135_596_800)
}
}
// Swift 3:
扩展日期{
init(ticks:UInt64){
self.init(timeIntervalSince1970:Double(ticks)/ 10_000_000 - 62_135_596_800)
}
}
示例(Swift 3):
let date =日期(价格:636110903202288256)
I want to get current timestamp like this:
636110767775716756
However, when I do :
NSDate().timeIntervalSince1970
It returns a value like this:
1475491615.71278
How do I access current time stamp ticks in the format I want? I check the dates from here:
You seem be looking for what DateTime.Ticks
is in C#, i.e. the
time since 0001-01-01 measured in 100-nanosecond intervals.
The code from your provided link Swift: convert NSDate to c# ticks can be translated to Swift easily:
// Swift 2:
extension NSDate {
var ticks: UInt64 {
return UInt64((self.timeIntervalSince1970 + 62_135_596_800) * 10_000_000)
}
}
// Swift 3:
extension Date {
var ticks: UInt64 {
return UInt64((self.timeIntervalSince1970 + 62_135_596_800) * 10_000_000)
}
}
Example (Swift 3):
let ticks = Date().ticks
print(ticks) // 636110903202288256
or as a string:
let sticks = String(Date().ticks)
print(sticks)
And while are are at it, the reverse conversion from ticks to Date
would be
// Swift 2:
extension NSDate {
convenience init(ticks: UInt64) {
self.init(timeIntervalSince1970: Double(ticks)/10_000_000 - 62_135_596_800)
}
}
// Swift 3:
extension Date {
init(ticks: UInt64) {
self.init(timeIntervalSince1970: Double(ticks)/10_000_000 - 62_135_596_800)
}
}
Example (Swift 3):
let date = Date(ticks: 636110903202288256)
这篇关于如何在Swift中获得18位数的当前时间戳?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!