NSDateFormatter使用am / pm给出错误的输出

时间:2013-07-26 18:49:36

标签: ios objective-c nsdate nsdateformatter

以下是我正在使用的内容

NSString *myDate = @"01-11-2014 10:22 PM";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd-MM-yyyy hh:mm a"];
NSDate *newDate = [dateFormatter dateFromString:myDate];
NSLog(@"new date===%@=====%@", newDate, myDate);

以下是我的内容

new date===2014-11-01 19:22:00 +0000=====01-11-2014 10:22 PM
                      ^^

我期待的输出是

new date===2014-11-01 22:22:00 +0000=====01-11-2014 10:22 PM
                      ^^

知道出了什么问题吗?


当我有AM时,我的输出低于

new date===2014-11-01 07:22:00 +0000=====01-11-2014 10:22 AM
                      ^^

编辑1

实际上我正在做的是在UITextField中询问日期和时间(遗憾的是,因为客户想要它以同样的方式)...然后连接这个字符串并将其转换为NSDate。

所以我拥有的是

 NSString myDate = [NSString stringWithFormat@"%@ %@", appDate, appTime];

1 个答案:

答案 0 :(得分:0)

添加以下代码:

[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];

你可能有错误的时区。您必须将时区设置为您的时区。