ios - 比较两个日期以在 Swift 4 中更新数据库
问题描述
我有这个代码:
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
中 - 我有数据库更新日期。
我需要确定是否可以更新数据库并将当前日期与可用数据库的日期进行比较:...
如何比较这些日期?
解决方案
您可以使用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)
推荐阅读
- c++ - 如果字节缓冲区应该是无符号字符,我是否必须一直保持转换?
- excel - 比较(多个参数)并更新另一个单元格?
- javascript - JavaScript:重新定义链接到函数参数的对象
- reactjs - NextJS 和 Storybook 构建 `index.html` - 如何将 Storybook 作为同一域的一部分提供服务?
- r - nlsplot 在 r 中的几个子集中
- sql - 使用 DB2 失去除法精度
- python - Pandas 数据框 - 匹配两个数据框中的两列以更改第三列的值
- javascript - Mongo 查询未在我的主服务器中产生结果
- flutter - 如何实现像特殊代码这样的快照代码?
- java - 在 RxJava 中识别发射 observable