如何在Swift中获得18位数的当前时间戳? [英] How to get 18-digit current timestamp in Swift?

查看:351
本文介绍了如何在Swift中获得18位数的当前时间戳?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想得到这样的当前时间戳:

  636110767775716756 

然而,当我这样做时:

  NSDate() .timeIntervalSince1970 

它返回如下值:

  1475491615.71278 

如何访问当前时间戳记我想要的格式?我从这里:

解决方案<查看日期/ div>

你似乎正在寻找 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆