Ios NSDate将时区更改为GMT+;2

Ios NSDate将时区更改为GMT+;2,ios,timezone,nsdate,nsdateformatter,Ios,Timezone,Nsdate,Nsdateformatter,我有一个时区为GMT+00.00的NSDate,我想把它改为GMT+02.00。为此,我创建了NSDateFormatter,并将时区设置为UTC,但它确实给了我预期的结果 这是我的密码 NSDateFormatter *timeformater = [[NSDateFormatter alloc] init]; [timeformater setLocale:[NSLocale currentLocale]]; [timeformater setDateFormat:@"EEEE-dd-MMM

我有一个时区为
GMT+00.00
NSDate
,我想把它改为
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"]];

如何正确更改时区?

NSDate是一个时间点,与时区无关。你不能改变它的时区,因为它没有时区。如果我们在不同的地区,同时拨打[NSDate date](例如,如果我打电话给你,我们同时点击一个按钮),即使我们的手表显示不同的时间,我们也会得到相同的NSDate


NSDateFormatter用于创建字符串以显示NSDate值,具体取决于时区。NSCalendar用于使用NSDate进行计算,具体取决于时区。但是您不能更改NSDate的时区

NSDate是一个时间点,与时区无关。你不能改变它的时区,因为它没有时区。如果我们在不同的地区,同时拨打[NSDate date](例如,如果我打电话给你,我们同时点击一个按钮),即使我们的手表显示不同的时间,我们也会得到相同的NSDate


NSDateFormatter用于创建字符串以显示NSDate值,具体取决于时区。NSCalendar用于使用NSDate进行计算,具体取决于时区。但是您不能更改NSDate的时区

NSDateFormatter
不能用于“更改”时区。如果您需要将
NSDate
移动两个小时,请使用
NSCalendar
API。好的,但是我如何使用它以及感谢
NSDateFormatter
不能用于“更改”时区。如果您需要将
NSDate
移动两个小时,请使用
NSCalendar
API。好的,但是我如何使用它,谢谢