4

所以我想在我的 iOS 应用程序的标签中显示从我们的服务器传递的时间,但我在试图弄清楚如何设置正确的 NSDateFormatter 时遇到了麻烦。因此,例如,我以这种格式从服务器获取此时间戳:2013-02-27T18:15:00-0800,我基本上想在标签中显示“10:15 AM”,但到目前为止我还没有运气。我在下面试过这个:

NSDateFormatter *timeFormatter = [[[NSDateFormatter alloc] init] autorelease];
            [timeFormatter setDateFormat:@"HH:mm a"];
            NSString *newTime = [timeFormatter stringFromDate:timeDate];
            NSLog(@"the new time is: %@", newTime);

但输出显示我的时间为晚上 18:15。

我一直在环顾四周并在 NSDateFormatter 中尝试不同的组合,但我似乎找不到合适的组合,任何帮助将不胜感激,因为我知道这是我忽略的简单但我找不到的东西它。

4

3 回答 3

7

HH 代表 24 小时。

hh satnds 12 小时。

相应地改变。

于 2013-02-27T19:56:55.343 回答
2

您正在使用 24 小时格式的 HH 设置时间格式,为了设置 12 小时格式,请使用以下代码,虽然不必写太多,正如代码行所说的那样。

[timeFormatter setDateFormat:@"hh:mm a"];

为了避免时区问题,请确保您也为格式化程序设置了时区

[timeFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"CET"]];
于 2013-02-27T19:57:04.767 回答
0

你需要使用hh,而不是HH。前者为 12 小时,后者为 24 小时。

于 2013-02-27T19:55:12.410 回答