Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 在未来创造时间_Swift_Date - Fatal编程技术网

Swift 在未来创造时间

Swift 在未来创造时间,swift,date,Swift,Date,我是Swift新手,不太熟悉日期和时间课程。我想制作一个类型为Date的对象,它指的是未来的某个时间(比如几个小时)。 我不确定这是否是UNIX时间戳 ? < P> SWIFT 日期(或 NSDATE >是基础框架中的一个类。根据文件: 日期结构提供了比较日期、计算 两个日期之间的时间间隔,以及从 相对于其他日期的时间间隔。结合使用日期值 使用DateFormatter实例创建的本地化表示形式 日期和时间,并使用日历实例执行日历 算术。 因此,您希望使用Calendar类进行日期转换。像这样的

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

<如何>?

< P> SWIFT <代码>日期<代码>(或<代码> NSDATE <代码> >是基础框架中的一个类。根据文件:

日期结构提供了比较日期、计算 两个日期之间的时间间隔,以及从 相对于其他日期的时间间隔。结合使用日期值 使用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;
    }
}

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

不需要任何
在Swift中。整个
getDateTimeForHoursInTheFuture
可以用一行书写:
返回日历.current.date(通过添加:.hour,值:hours,to:date())@rmaddy是。你说得对。但我认为我的版本对初学者来说更为明显。