2016-09-28 60 views
1

目前我有一段代碼將一組用戶輸入的字符串(例如900130)轉換爲使用yyMMdd(馬來西亞IC)格式的日期。我的字符串轉換爲代碼如下:某日期的NSDate格式化不是有效日期

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"yyMMdd"]; 
date = [dateFormat dateFromString:temp]; // temp = string key in by user 

當我運行一些測試並沒有出現我的問題,但是當我把它交給別人來測試它,會出現問題,在字符串490130應該將其轉換爲30/1/1949將其轉換爲30/1/2049。

如何轉換490130至30/1/1949,而不是30/1/2049

+1

你想要兩位數的年份被認爲是19xx年還是20xx年? – rmaddy

+1

添加100年到日期? – matt

+1

或從日期減去100年。 – ozgur

回答

1

NSDateFormatter承擔了2位數的年20XX如果年份小於50和19xx年的兩位數年份如果年份大於50.我忘記了年份爲50時的假設。

看起來你想要一個不同於50的截止點。沒有內置支持使用不同的截斷點。

一種選擇是查看前兩個字符,看看它是否低於或低於你的截止點。然後根據需要在字符串的開始處添加19或20。然後使用yyyyMMdd解析字符串。

+0

感謝您對日期格式化程序的解釋。我通過檢查當前年份和年份來解決我的問題,即手動將「19」或「20」添加到字符串的前面,並將字符串解析爲yyyyMMdd –