我是Swift的新手,对日期和时间课程并不熟悉。我想创建一个Date
类型的对象,指的是未来的某个时间(比如几个小时)。
我不确定这是否是UNIX时间戳。
我该怎么做?
答案 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
方法。