在未来快速创造时间

时间:2018-06-10 03:57:58

标签: swift date

我是Swift的新手,对日期和时间课程并不熟悉。我想创建一个Date类型的对象,指的是未来的某个时间(比如几个小时)。 我不确定这是否是UNIX时间戳。

我该怎么做?

1 个答案:

答案 0 :(得分:2)

Swift Date(或NSDate)是Foundation框架中的一个类。根据文件:

  

Date结构提供了比较日期,计算的方法   两个日期之间的时间间隔,并从一个日期创建一个新的日期   相对于另一个日期的时间间隔。结合使用日期值   使用DateFormatter实例创建的本地化表示   日期和时间以及日历实例以执行日历   算术

因此,您希望使用Calendar课程进行日期转换。这样的事情应该可以胜任:

func getDateTimeForHoursInTheFuture(hours: Int) -> Date {
    var components = DateComponents();
    components.setValue(hours, for: .hour);
    let date: Date = Date();
    let expirationDate = Calendar.current.date(byAdding: components, to: date);

    return expirationDate!;
}

当然可以改为使用分钟和秒而不是几小时。

您可以使用以下方式格式化输出:

extension Date {
    func toDateTimeString() -> String {
        let formatter = DateFormatter();
        formatter.dateFormat = "yyyy-MM-dd HH:mm:ss";

        let myString = formatter.string(from: self);

        return myString;
    }
}

只需在toDateTimeString()函数的结果上调用getDateTimeForHoursInTheFuture方法。