我有一个数据结构,其中包含以毫秒为单位的时间戳,例如1470075992.我想将此转换为仅日期,即示例24/12/2016,而不保留转换产生的其他详细信息。
我可以用什么功能来完成这项工作?
谢谢,
答案 0 :(得分:9)
Swift 3.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)
答案 1 :(得分:1)
以正常方式从时间戳中导出NSDate:除以1000得到秒并根据需要使用NSDate初始化程序,以根据给定参考日期的秒数获取日期,例如init(timeIntervalSinceReferenceDate:)
。
你问题的另一部分毫无意义。如果不保留其他详细信息,则无法执行此操作"。没有"日期,例如2016年12月24日"。日期是日期(NSDate);这是一个简单而简单的秒数。如果您想仅查看该日期的日期,月份和年份,那就是字符串,而不是日期,并使其成为NSDateFormatter的工作。