刚才发现NSDateFormatter停止以24小时格式识别AM / PM。我的代码是
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"yyyy MM dd HH:mma";
NSDate *date1 = [dateFormatter dateFromString:@"2015 02 11 12:30PM"];
NSLog(@"%@", date1);
NSDate *date2 = [dateFormatter dateFromString:@"2015 02 11 13:30PM"];
NSLog(@"%@", date2);
我得到的输出显示的日期是:
2015-12-24 15:38:54.234 xyz[580:88238] 2015-02-11 07:00:00 +0000
2015-12-24 15:38:54.235 xyz[580:88238] 2015-02-11 07:00:00 +0000
但在我将XCode更新为7.2并将iPod更新为9.2之前,它已经开始工作了。如果它是iOS 9.2错误,请告诉我。
答案 0 :(得分:2)
13:30PM
没有意义。使用24小时制或 AM
/ PM
。
特别是13:30 PM
使用24小时制时不是有效时间。
解决方案:删除PM
并从日期格式化程序中删除a
。
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"yyyy MM dd HH:mm";
NSDate *date1 = [dateFormatter dateFromString:@"2015 02 11 12:30"];
NSLog(@"%@", date1);
NSDate *date2 = [dateFormatter dateFromString:@"2015 02 11 13:30"];
NSLog(@"%@", date2);
正确输出
2015-12-24 11:42:43.420 Flip [3080:312362] 2015-02-11 11:30:00 +0000
2015-12-24 11:42:43.422 Flip [3080:312362] 2015-02-11 12:30:00 +0000
(时区差异造成一个人的偏移)
答案 1 :(得分:0)
您可以尝试这样
function decryptRJ256($key,$iv,$string_to_decrypt){
$string_to_decrypt = base64_decode($string_to_decrypt);
$rtn = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $string_to_decrypt, MCRYPT_MODE_CBC, $iv);
$rtn = rtrim($rtn, "\0\4");
return($rtn);}
答案 2 :(得分:0)
尝试使用hh:mma 12小时格式或使用HH:mm 24小时格式
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"yyyy MM dd hh:mma";
NSDate *date1 = [dateFormatter dateFromString:@"2015 02 11 12:30PM"];
NSLog(@"Date1: %@", date1);
NSDate *date2 = [dateFormatter dateFromString:@"2015 02 11 01:30PM"];
NSLog(@"Date2: %@", date2);
NSString *str1 = [dateFormatter stringFromDate:date1];
NSString *str2 = [dateFormatter stringFromDate:date2];
NSLog(@"DateStr1: %@", str1);
NSLog(@"DateSTr2: %@", str2);
输出: -
Date1: 2015-02-11 07:00:00 +0000
Date2: 2015-02-11 08:00:00 +0000
DateStr1: 2015 02 11 12:30PM
DateSTr2: 2015 02 11 01:30PM