将GMT日期格式转换为基于区域的格式

时间:2011-04-06 06:59:15

标签: iphone objective-c cocoa-touch nsdate nslocale

如何将GMT格式的NSDate对象转换为具有当前区域设置/设备设置的日期格式?

例如,如果设备位于美国和PDT时区,那么我想将GMT时间转换为等效的PDT时间。

2 个答案:

答案 0 :(得分:1)

严格来说,您无法将NSDate转换为其他时区,因为NSDate没有任何时区概念。无论时区如何,NSDate对象只表示(绝对)时间内的单个点。

每当您想要向用户显示日期时,您应该创建NSDateFormatter。默认情况下,它会自动在用户的时区中显示时间。您可以使用-[NSDateFormatter setTimeZone:]覆盖此内容。

答案 1 :(得分:0)

只需使用传递到适当时区的NSDate方法descriptionWithCalendarFormat:timeZone:locale:即可。如果您只使用description方法,则可获得当前时区的日期/时间(因此,如果设备设置为PDT,则时间将为PDT)。