我想要在下午4:00表格中显示NSDate。
NSDate *time = [object objectForKey:@"time"];
NSLog(@"time: %@", time);
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.locale = [NSLocale currentLocale];
[dateFormatter setDateFormat:@"h:mm a"];
timeLabel.text = [dateFormatter stringFromDate:time];
日志返回:
2014-03-08 13:00:00 +0000
但是timeLabel.text读取凌晨1点,应该是pm。知道发生了什么事吗?
答案 0 :(得分:4)
您忘了添加时区。剩下的很好。您必须为格式化程序指定一个时区,否则它将使用您当地的
还要注意使用NSLog ALWAYS记录打印UTC日期
使用[formatter setTimezone:timeZoneXY]
答案 1 :(得分:0)
NSDate *time = [object objectForKey:@"time"];
NSLog(@"time: %@", time);
您的时间变量时间格式为24小时格式。这样它显示NSLog 13.00。
之后,您可以使用转换器12小时格式,就像它显示上午/下午样式
一样[dateFormatter setDateFormat:@"h:mm a"];
注意:
hh - 小写字母h表示12小时格式
答案 2 :(得分:0)
您可以使用以下代码:
NSString *str=@"17-02-2014 05:00 PM";
NSDateFormatter *dateFormatter=[[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"dd-MM-yyyy hh:mm a"];
NSDate *datetoday=[dateFormatter dateFromString:str];
[dateFormatter setDateFormat:@"yyyy-MM-dd hh:mm:ss Z"];
NSString *strdate=[dateFormatter stringFromDate:datetoday];
NSLog(@"%@",strdate);