【发布时间】:2015-11-04 10:11:06
【问题描述】:
Joda time 为 java 世界提供了 LocalDate 类。它为您提供仅日期,不带时间信息,无论用户手机或计算机设置的时区如何,都可以转换为同一日期。它允许计算。
显然,它由设置为 13.00 UTC 的常规 DateTime 对象支持。
在可可或可可触感世界中是否存在等价物?
或者我是否仅限于使用 NSDate 并将其设置为 13:00 和 UTC 的语言环境来实现相同的目标?这应该是一样的,但看起来更像是一个黑客而不是一个解决方案。
我当然可以为它引入一个NSDate 的子类。
【问题讨论】:
-
究竟想要完成什么?在 NSDate、NSCalendar 和 NSDateComponents 之间,你可以做任何你能想到的时间或日期计算。 Java 可能有一个仿冒的第三方类来修复他们损坏的东西,但 Foundation 最先做到了,而且做得更好! /fighting_words
-
我想在任何时区设置一个日期。只是日期。我希望它在一些允许计算和 比较的类中。我希望在世界各地使用当地时区将同一日期显示为同一日期。与 JodaTime 的 LocalDate 相同。
-
如果没有时间部分,则时区无关紧要。您可以使用将时间设置为 12:00 AM (00:00) 的 NSDate,并进行任何您想要的计算。在向用户打印或显示日期时,您可以忽略时间部分。
-
另外,NSDates 没有时区的概念。这种解释取决于使用它的程序员。
-
@Avi,我希望你是对的,但你不是。时区并非无关紧要。将其设置为北京时区的凌晨 12 点并将其存储在某个地方。然后将您的手机设置为旧金山并恢复并显示它。您将看到前一天的日期。反过来做,您将显示 +1 天。设置为 11 AM UTC 可以在任何时区工作,但这不是我要求的。
标签: objective-c swift cocoa