2015-12-24 38 views
0

只是發現NSDateFormatter停止識別AM/PM 24小時格式。我的代碼是問題與NSDateFormetter iOS

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

請儘量使用小的 「h」 表示 「小時:MMA」 beause爲使用12小時甲酸小 「h」 的和「H」用於24小時甲酸鹽。 –

+3

13:30 PM不存在! am-pm是12小時制! 此外,當您記錄NSDate時,它將以GMT + 0時區記錄。 – arturdev

+0

請首先將您的問題更正爲@arturdev說:13:30 PM不存在! –

回答

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翻轉[3080:312362] 2015年2月11日11時30分○○秒0000
2015年12月24日11:42:43.422翻轉[3080:312362] 2015年2月11日12:30:00 0000

(時區差導致這裏一個厚而的偏移)

0

你可以嘗試這樣的

NSDate *currDate = [NSDate date]; 

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init]; 

[dateFormatter setDateFormat:@"dd MM YY HH:mma"]; 

    NSString *dateString = [dateFormatter stringFromDate:currDate]; 

    NSLog(@"%@",dateString); 
0

嘗試使用HH:媽媽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