我有这段代码将字符串转换为日期:
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中做错了吗?
答案 0 :(得分:1)
由于strToConvert
使用AM / PM小时时间和日期格式化程序使用24小时制,因此导致错误的日期转换。修复日期格式化程序dateFormat
以使用AM / PM小时时间:@"MM/dd/yy, hh:mm:ss a"