iOS将字符串转换为日期:小时在两个不同的时间是相同的

时间:2016-09-02 18:37:11

标签: ios nsdateformatter

我有这段代码将字符串转换为日期:

NSString* strToConvert;
NSDate* dtToReturn;
//...code to parse string
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"MM/dd/yy, HH:mm:ss a"];
    [dateFormatter setTimeZone:[NSTimeZone localTimeZone]];

    dtToReturn = [dateFormatter dateFromString:strToConvert];

我发送这个字符串" 08/30/16 02:22:00 PM"

并返回此日期:2016-08-30 16:22:00 +0000

这是预期的,因为我是GMT的+4

但如果我发送这个字符串:" 08/30/16 03:22:00 PM"

它返回相同的日期:2016-08-30 16:22:00 +0000

我一次只将一个字符串传递给方法。我在dateformatter中做错了吗?

1 个答案:

答案 0 :(得分:1)

由于strToConvert使用AM / PM小时时间和日期格式化程序使用24小时制,因此导致错误的日期转换。修复日期格式化程序dateFormat以使用AM / PM小时时间:@"MM/dd/yy, hh:mm:ss a"