【问题标题】:NSDate change time zone to GMT +02.00NSDate 将时区更改为 GMT +02.00
【发布时间】:2014-04-22 07:25:23
【问题描述】:

我有一个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"]];

如何正确更改时区?

【问题讨论】:

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

标签: ios timezone nsdate nsdateformatter


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-10
    • 2012-11-03
    • 1970-01-01
    • 1970-01-01
    • 2011-10-26
    相关资源
    最近更新 更多