我正在开发一个使用大量日期的应用程序,但这根本不依赖于时间。我想将它们作为 NSDates 在内部存储,以便我可以使用 NSDatePicker 控件、内置日期函数等。
但是,我一直在绊倒NSDes坚持存储时间和日期的事实。许多日期初始化函数附加当前时间或任意时间。我已经编写了我的代码,通过将时间部分设置为 0 来清除所有日期的时间 - 但即便如此,时区问题也会搞砸一些比较(例如,如果本地时区的当前日期与 GMT 中的日期不同,将当前日期与特定日期进行比较会产生错误的答案)。
当然有更好的方法来解决这个问题...?
正如Thilo所提到的,答案是设置一个固定的时区。
请注意,这还不够。最初,我选择了格林威治标准时间,只是将时间固定在00:00:00。碰巧的是,这是一个愚蠢的举动,因为任何实际的时间调整都可能导致问题。比如,说...将该值加载到 DatePicker 控件中,然后在凌晨 1 点左右在 GMT 以西的时区使用该应用程序。哎 呦。
为了解决大多数这些问题,我选择了GMT并将时间设置为固定的12:00:00。这应该使格林威治标准时间以东或以西的 11 个时区的日期保持并发。