Swift字符串格式为十六进制切断前两个字节

时间:2015-07-13 23:53:53

标签: string swift formatting hex

我试图将时间戳转换为十六进制字符串,其设置长度为12个字符,例如006AC2291E37。以下是我试图实现此目的的两种方式:

var curTime = NSDate().timeIntervalSinceReferenceDate*1000

var hex = String(Int(curTime), radix: 16)  // "6AC2291E37"

println(String(format: "%012X", Int(curTime)))  // "0000C2291E37"

正如您可以通过输出看到的那样,秒版本会切断十六进制时间戳的前两位数字,但格式正确。第一个版本具有正确的时间戳但格式不正确。

应如何实施?

1 个答案:

答案 0 :(得分:1)

很简单:

String(format: "%012lX", Int(curTime))

它将其关闭,因为'X'的默认值是无符号的32位整数,但在您的示例中使用了64位整数。

为什么你把这个时间间隔乘以1000?这没有任何意义。