Создать время в будущем Swift - PullRequest
0 голосов
/ 10 июня 2018

Я новичок в Swift и не очень знаком с классами даты и времени.Я хочу сделать объект типа Date, который ссылается на какое-то время в будущем (например, на несколько часов).Я не уверен, будет ли это отметка времени UNIX или нет.

Как я могу это сделать?

1 Ответ

0 голосов
/ 10 июня 2018

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...