2017-05-31 86 views
1

我有一個從服務器「2017年5月31日上午10時05分59秒+00:00」的日期字符串,我試圖把它轉換成NSDate的,DateFormatting導致空

NSString *expiration = [responseObject valueForKey:@".expires"]; 
    NSDateFormatter *dateFormatter = [NSDateFormatter new]; 
    dateFormatter.dateFormat = @"MM/dd/yyyy hh:mm:ss a +zz"; 
    dateFormatter.timeZone = [NSTimeZone localTimeZone]; 
    NSDate *expiryDate = [dateFormatter dateFromString:expiration]; 
    EKLog(@"expiry date %@", expiryDate); 

但給我null,Plase幫助謝謝。

+0

https://gist.github.com/romaonthego/5138532這將幫助您日後格式化日期。 –

回答

1

組DATEFORMAT作爲

dateFormatter.dateFormat = @"MM/dd/yyyy hh:mm:ss a z"; 

全碼是

NSDateFormatter *dateFormatter = [NSDateFormatter new]; 
dateFormatter.dateFormat = @"MM/dd/yyyy hh:mm:ss a z"; 
dateFormatter.timeZone = [NSTimeZone localTimeZone]; 
NSDate *expiryDate = [dateFormatter dateFromString:@"5/31/2017 10:05:59 AM +00:00"]; 
NSLog(@"expiry date %@", expiryDate); 

輸出

enter image description here

+0

感謝它的工作! –

+0

請勿發佈文字圖片!哎呀,你發佈圖片而不是簡單的複製/粘貼真的更容易嗎?或者您的計算機操作系統不支持複製和粘貼簡單文本?在這種情況下:獲得更新的操作系統(比70年代更新。 – Olaf

1

嘗試此

dateFormatter.dateFormat = @"MM/dd/yyyy hh:mm:ss a z"; 
0

您的代碼正確,但日期格式錯誤。 檢查下面的代碼

ž而不是ZZ

NSString *expiration [email protected]"5/31/2017 10:05:59 AM +00:00"; 
NSDateFormatter *dateFormatter = [NSDateFormatter new]; 
dateFormatter.dateFormat = @"MM/dd/yyyy hh:mm:ss a Z"; 
dateFormatter.timeZone = [NSTimeZone localTimeZone]; 
NSDate *expiryDate = [dateFormatter dateFromString:expiration]; 
NSLog(@"expiry date %@", expiryDate); 
1

您使用了錯誤的日期格式。 5/31/2017 10:05:59 AM +00:00

相反的MM/dd/yyyy hh:mm:ss a +zz,你應該用'M/dd/yyyy hh:mm:ss a Z

但使用NSDateFomatter之前,您應該使用stringByReplacingOccurrencesOfString時區取出:,如Z將解析日期+0000

更多測試,你可以用這個鏈接:http://nsdateformatter.com

0

好吧,就這樣試試吧:heredateFormatter.dateFormat = @"MM-dd-yyyy hh:mm:ss a zz";