我有NSDate
时区GMT +00.00
,我想将其更改为GMT +02.00
。为此,我创建了NSDateFormatter
并将时区设置为UTC
,但它确实给了我预期的结果,
这是我的代码,
NSDateFormatter *timeformater = [[NSDateFormatter alloc] init];
[timeformater setLocale:[NSLocale currentLocale]];
[timeformater setDateFormat:@"EEEE-dd-MMMM-yyyy HH:mm a"];
[timeformater setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
如何正确更改时区?
答案 0 :(得分:4)
NSDate是一个时间点,与时区无关。您无法更改其时区,因为它没有时区。如果我们在不同的地区,并同时拨打[NSDate日期](例如,如果我打电话给你,我们在同一时间点击一个按钮),即使我们的手表显示不同的时间,我们也会得到相同的NSDate 。
NSDateFormatter用于创建字符串以显示NSDate值,具体取决于时区。 NSCalendar用于使用NSDate进行计算,具体取决于时区。但是你不能改变NSDate的时区。