gpt4 book ai didi

swift - 为什么日期格式化程序正确返回日期但时间显示为 00 :00:00 when converting string to NSDate

转载 作者:行者123 更新时间:2023-11-28 15:38:26 25 4
gpt4 key购买 nike

我有一个函数,我必须从我自己的应用程序的 sqlite 数据库中检索日期。我已经使用格式化程序保存了它

我的工作流程

1..在应用程序进入后台时将日期保存到数据库(另存为字符串)

2..当应用程序再次成为前台时,我也在那个时间点创建了一个日期实例。现在我有两个约会对象。

3..将两个日期转换为正确的格式并获得秒差。

将日期转换为字符串-->

let formatter = NSDateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss.Z"
let myString = formatter.stringFromDate(NSDate()) // i get value"2017-05-18 16:49:38.+0530"

但是当我将它重新转换为 NSDate 时(我的意思是当我再次将它转换为字符串时)-->

 let formatter = NSDateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss.Z"

let lastloginDate=formatter.dateFromString(lastLogin) // i get value(Converting back to string \n for checking as the time difference was zero ) 2017-05-18 00:00:00.+0530

我想像 session 输出服务一样比较两个日期,我通过获取分钟的日历组件差异来完成此操作。不过既然来了,差价始终为零。

 let myString1 = formatter.stringFromDate(date1)
let myString2 = formatter.stringFromDate(date2)
print("DATE 1\(myString1) DATE 2 \(myString2)")

let components = calendar.components(flags, fromDate: date2, toDate: date1, options: [])
let diff = components.second
print("Diffrence is \(diff)") // Always zero 😱

这是为什么?

最佳答案

试试这个。

    let myString1 = formatter.stringFromDate(date1)
let myString2 = formatter.stringFromDate(date2)
print("DATE 1\(myString1) DATE 2 \(myString2)")

let components = NSCalendar.currentCalendar().components([.Month, .Day, .Hour, .Minute, .Second], fromDate: myString1, toDate: myString2, options: [])
let diff = components.second
print("Difference is \(diff)")

关于swift - 为什么日期格式化程序正确返回日期但时间显示为 00 :00:00 when converting string to NSDate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44046584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com