时间戳不会以字符串格式更改

时间:2016-11-11 12:29:25

标签: ios swift swift3 nsdateformatter

let dateFormater : DateFormatter = DateFormatter()
dateFormater.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
let date = dateFormater.date(from: "2016-11-11T11:42:27Z")
print("date is  ---->%@",date)

let timestamp = date?.timeIntervalSince1970
print("timestamp is  ---->%@",timestamp!)

let str =  String(format: "%@",timestamp!)
print("str value is ---->%@",str)

date is -----> 2016-11-11 11:42:27 +000
timestamp is----->1478864547.0
str value is-----> null

获取日期和时间戳值。如何将timestamp值更改为字符串。将1478864547.0(timestampvalue)表示为字符串格式

let str = String(format: "%@",timestamp!)这条线错了。

3 个答案:

答案 0 :(得分:1)

您只需使用let timestampInString = "\(timestamp)"

如果是可选的那么

if let timestamp = date?.timeIntervalSince1970 {
     let timestampInString = "\(timestamp)"
}

答案 1 :(得分:1)

问题是timestamp不是对象 - 它是TimeIntervaltypealias只是Double。如果要使用格式化字符串,则需要执行"%lf"

答案 2 :(得分:0)

您将获得空值。 timestamp不是String值,因此您无法直接获得String值,您必须使用FloatString施放 请按照以下步骤确定它适用于您。

let dateFormater : DateFormatter = DateFormatter()
dateFormater.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
let date = dateFormater.date(from: "2016-11-11T11:42:27Z")
print("date is  ---->%@",date)

let timestamp = date?.timeIntervalSince1970
print("timestamp is  ---->%@",timestamp!)

let str =  String(format: "%0.0f",timestamp!)
print("str value is ---->%@",str)

TimeInterval是Double的类型,所以使用或" 0.0f" " %lf"。