Iphone 日期格式化程序问题

Iphone 日期格式化程序问题,iphone,ios,ipad,nsdate,nsdateformatter,Iphone,Ios,Ipad,Nsdate,Nsdateformatter,我使用下面的代码将字符串转换为日期,但在记录日期时时间格式不正确 NSDateFormatter *formate = [[[NSDateFormatter alloc] init] autorelease]; [formate setDateFormat:@"MM/dd/yyyy HH:mm a"]; [formate setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; NSString *strConcat =

我使用下面的代码将字符串转换为日期,但在记录日期时时间格式不正确

NSDateFormatter *formate = [[[NSDateFormatter alloc] init] autorelease];
    [formate setDateFormat:@"MM/dd/yyyy HH:mm a"];
    [formate setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
    NSString *strConcat = @"03/06/2013  2:59 PM";
    NSDate *date = [formate dateFromString:strConcat];
    NSLog(@"Output :%@",date);
输出
2013-03-06 12:59:00+0000

谁能告诉我把它转换成日期的错误在哪里


提前感谢。

您的错误由
HH
以日期格式显示,您需要使用
HH

//hh给出14:59

//HH给出12:59

NSDateFormatter *formate = [[NSDateFormatter alloc] init];
[formate setDateFormat:@"MM/dd/yyyy hh:mm a"]; 
[formate setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
NSString *strConcat = @"03/06/2013  2:59 PM";
NSDate *date = [formate dateFromString:strConcat];
NSLog(@"Output :%@",date);

这不是时区问题。这是因为
HH
(24小时)和
HH
(12小时)格式不同。@MartinR:2:59下午将是14:59,不是吗?这里hh给出14:59,而hh 12:59如果使用
hh:mm a
作为日期格式,则
2:29 PM
被正确解析为
14:59
。24小时格式加上AM/PM的组合
HH
,可能不起作用(反正也没什么意义)时区被显式设置为GMT,因此它不能是时区problem@MartinR:是的,你是对的。我的错:(