Сравнение двух дат для обновления базы в Swift 4 - PullRequest
0 голосов
/ 06 июня 2018

У меня есть этот код:

func getSystemDate()-> String{
        let date = Date()
        let calendar = Calendar.current
        let hour = String(format: "%02d",calendar.component(.hour, from: date))
        let minutes = String(format: "%02d",calendar.component(.minute, from: date))
        let seconds = String(format: "%02d",calendar.component(.second, from: date))

        let day = String(format: "%02d",calendar.component(.day, from: date))
        let month = String(format: "%02d",calendar.component(.month, from: date))
        let year = String(format: "%02d",calendar.component(.year, from: date))

        let fullDate = "\(year)-\(month)-\(day) \(hour):\(minutes):\(seconds)"

        return fullDate
    }
let date1 = getSystemDate()
let date2 = "2018-05-23 13:14:47"

if date1 > date2 {
    print("its ok - update available")
} else {
    print("wrong - you have actually database")
}

Моя функция getSystemDate() возвращает фактическую дату в строке.В переменной date2 - у меня есть дата обновления базы данных.

Мне нужно определить, возможно ли обновить базу данных и сравнить текущую дату с датой доступной базы данных: ...

Как мне сравнить эти даты?

1 Ответ

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

Вы можете использовать Calendar для сравнения двух Dates.Вы также можете перейти к second unit, если разница равна 0, значит, они равны, или вы можете проверить, какая из них больше:

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
//dateFormatter.timeZone   = TimeZone(abbreviation: "UTC")  // To add timezone

guard let dateOne = dateFormatter.date(from: "2018-05-23 13:14:47"), let dateTwo = dateFormatter.date(from: "2018-05-23 14:14:47") else {
    print("One of the date conversion is nil")
    return
}

print(dateOne, dateTwo)

let components = Calendar.current.dateComponents([.second], from: dateOne, to: dateTwo)
let secondsInBetween: Int = components.second!

print(secondsInBetween)
...