Swift - 将毫秒转换为日期

时间:2016-08-07 19:52:20

标签: ios swift date nsdate

我有一个数据结构,其中包含以毫秒为单位的时间戳,例如1470075992.我想将此转换为仅日期,即示例24/12/2016,而不保留转换产生的其他详细信息。

我可以用什么功能来完成这项工作?

谢谢,

2 个答案:

答案 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的工作。