objective-c 中的 NSDate 日期给出的日期时间与 swift 中的 Date() 不同

NSDate date in objective-c gives different datetime than Date() in swift

我知道 IOS 使用与地点无关的时间,除非另有说明。但是,由于未知原因,当我从 Objective-C 登录到控制台 [NSDate date] 时,我得到的是我所在的实际时间,而当我从 swift 打印到控制台 Date() 时,我同时获得格林威治。

在objective-C方法中第一次提到的日期是:

   __block NSDate* rightNow = [NSDate date];
    LogDebug(@"right now%@",rightNow);
/logs as: right nowFri Oct 26 14:18:37 2018 

在swift中,方法中第一次提到的日期是:

 let now =  Date()
        print("right now date is",now)
//Prints as: right now date is 2018-10-26 18:19:10 +0000

我确实在 Objective-C class 的其他方法中使用 dateformatter 为日期设置格式,但我看不出它们如何延续到此方法中。

有什么不同?有没有办法强制他们成为其中之一?

提前感谢您的任何建议。

尽管 date() 和 NSDate 应该是同一件事,但无论是使用 NSLog 还是使用 LogDebug 等库,它们在控制台中的日志记录都不同。您在检查控制台日志时应该注意这一点。

两者之间的差异有一个实际结果,即 now.timeIntervalSince(someDate!) returns 与 NSDate().timeIntervalSince(someDate) 不同的结果。为了避免问题,比较苹果与苹果,换句话说 date() 与 date() 和 NSDate() 与 NSDate()