我试图将时间戳转换为十六进制字符串,其设置长度为12个字符,例如006AC2291E37。以下是我试图实现此目的的两种方式:
var curTime = NSDate().timeIntervalSinceReferenceDate*1000
var hex = String(Int(curTime), radix: 16) // "6AC2291E37"
println(String(format: "%012X", Int(curTime))) // "0000C2291E37"
正如您可以通过输出看到的那样,秒版本会切断十六进制时间戳的前两位数字,但格式正确。第一个版本具有正确的时间戳但格式不正确。
应如何实施?
答案 0 :(得分:1)
很简单:
String(format: "%012lX", Int(curTime))
它将其关闭,因为'X'的默认值是无符号的32位整数,但在您的示例中使用了64位整数。
为什么你把这个时间间隔乘以1000?这没有任何意义。