gpt4 book ai didi

iOS NSDate() 返回不正确的时间

转载 作者:行者123 更新时间:2023-11-28 09:30:55 24 4
gpt4 key购买 nike

我正在尝试使用 NSDate() 在 Swift 中获取当前日期。当我创建断点并停止应用程序时,我可以看到与设备的系统时间有 3 小时的差异。应用程序在真正的 iPhone 上运行。如何解决这个问题?

为了确定,我还在 App Delegate 中写了以下内容:

NSTimeZone.setDefaultTimeZone(NSTimeZone(name: "Europe/Kiev")!)

但是还是不行。

最佳答案

它不会返回错误的时间。它返回正确的时间。 NSDate 没有任何时区信息。现在,当我们调用 NSDate() 时,我的计算机和您的计算机将报告完全相同的时间。

NSLog 以 UTC 显示 NSDate。这就是它显示的内容。因此,如果我们现在都调用 NSLog,您的计算机将记录与我的相同的日期和时间。因为它是相同的日期和时间。

如果你想处理一个 NSDate(例如,向用户显示日期和时间),你可以使用 NSCalendar。 NSCalendar 在 NSDate 之间进行转换,NSDate 在世界各地都是一样的,到您想要在用户界面中显示的值,这在伦敦或基辅会有所不同。如果我现在看我的 watch ,我会看到一个与你在 watch 上看到的不同的时间,这就是 NSCalendar 的用途。

关于iOS NSDate() 返回不正确的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30083756/

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