所以我想在我的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中使用不同的组合,但我似乎无法找到合适的组合,任何帮助都会受到赞赏,因为我知道这很简单,我忽略了但是我可以找不到它。
答案 0 :(得分:6)
HH代表24小时。
hh坐了12个小时。
相应地改变。
答案 1 :(得分:1)
您正在使用24小时格式的HH设置时间格式,为了设置12小时格式,请使用以下代码,尽管没有写太多,如代码行所示。
[timeFormatter setDateFormat:@"hh:mm a"];
为了避免出现时区问题,请确保同时设置格式化程序的时区
[timeFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"CET"]];
答案 2 :(得分:0)
您需要使用hh
,而不是HH
。前者为12小时,后者为24小时。