Swift - 将毫秒转换为日期
Swift - Convert Milliseconds to Date
我有一个包含以毫秒为单位的时间戳的数据结构,例如 1470075992。我只想将其转换为日期,例如 24/12/2016,而不保留转换产生的其他详细信息。
我可以使用什么功能来完成此操作?
谢谢,
以正常方式从时间戳中导出 NSDate:除以 1000 得到秒数,并根据给定参考日期的秒数适当地使用 NSDate 初始值设定项来获取日期,例如 init(timeIntervalSinceReferenceDate:)
。
你问题的另一部分没有意义。你不能这样做 "without keeping the additional details"。没有 "date only i.e. example 24/12/2016" 这样的东西。一个日期就是一个日期(一个 NSDate);它是几秒钟,简单明了。如果你只想查看那个日期的日、月、年,那是一个字符串,而不是一个日期,并且使它成为NSDateFormatter 的工作。
Swift3.0 更新:
typealias UnixTime = Int
extension UnixTime {
private func formatType(form: String) -> DateFormatter {
let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "en_US")
dateFormatter.dateFormat = form
return dateFormatter
}
var dateFull: Date {
return Date(timeIntervalSince1970: Double(self))
}
var toHour: String {
return formatType(form: "HH:mm").string(from: dateFull)
}
var toDay: String {
return formatType(form: "MM/dd/yyyy").string(from: dateFull)
}
}
var myMilliseconds: UnixTime = 1470075992
print(myMilliseconds.toDay)
我有一个包含以毫秒为单位的时间戳的数据结构,例如 1470075992。我只想将其转换为日期,例如 24/12/2016,而不保留转换产生的其他详细信息。
我可以使用什么功能来完成此操作?
谢谢,
以正常方式从时间戳中导出 NSDate:除以 1000 得到秒数,并根据给定参考日期的秒数适当地使用 NSDate 初始值设定项来获取日期,例如 init(timeIntervalSinceReferenceDate:)
。
你问题的另一部分没有意义。你不能这样做 "without keeping the additional details"。没有 "date only i.e. example 24/12/2016" 这样的东西。一个日期就是一个日期(一个 NSDate);它是几秒钟,简单明了。如果你只想查看那个日期的日、月、年,那是一个字符串,而不是一个日期,并且使它成为NSDateFormatter 的工作。
Swift3.0 更新:
typealias UnixTime = Int
extension UnixTime {
private func formatType(form: String) -> DateFormatter {
let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "en_US")
dateFormatter.dateFormat = form
return dateFormatter
}
var dateFull: Date {
return Date(timeIntervalSince1970: Double(self))
}
var toHour: String {
return formatType(form: "HH:mm").string(from: dateFull)
}
var toDay: String {
return formatType(form: "MM/dd/yyyy").string(from: dateFull)
}
}
var myMilliseconds: UnixTime = 1470075992
print(myMilliseconds.toDay)