为什么日期格式化程序正确返回日期,但在将字符串转换为 NSDate 时时间显示为 00:00:00



我有一个函数,我必须从我自己的 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

我想比较两个日期,就像会话服务一样,我通过获取分钟的日历组件差异来做到这一点。然而,自从它这样来了,差异他总是零。

 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)") 

最新更新