2012-02-15 118 views
2

我的輸入字符串如何將字符串轉換爲日期和日期字符串?

NSString *[email protected]"15 February 2012 17:05"; 
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"dd MMMM YYYY HH:mm"]; 
NSDate *dateVal = [dateFormat dateFromString:inputString]; 

NSDateFormatter *dateFormat2 = [[NSDateFormatter alloc] init]; 
[dateFormat2 setDateFormat:@"MM/dd/YYYY HH:mm"]; 
NSString *outputString = [dateFormat2 stringFromDate:dateVal]; 
[dateFormat release]; 
[dateFormat2 release]; 

我得到了以下日期 outputString = 12/25/2011年17:05

但應02/15/2012 17:05..Where沒有我做錯了嗎?

+0

的問題是在第一部分(解析日期字符串)。它將於2011年12月25日返回,但我不知道爲什麼。 – Rayfleck 2012-02-15 14:38:25

回答

2

您正在使用錯誤的格式,日期格式,也沒有必要建立NSDateFormatter的另一個實例 -

NSString *[email protected]"15 February 2012 17:05"; 
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
    [dateFormat setDateFormat:@"dd MMMM yyyy HH:mm"]; 
    NSDate *dateVal = [dateFormat dateFromString:inputString]; 

    [dateFormat setDateFormat:@"MM/dd/yyyy HH:mm"]; 
    NSString *outputString = [dateFormat stringFromDate:dateVal]; 
4

的日期格式不正確,使用方法:

[dateFormat setDateFormat:@"dd MMMM yyyy HH:mm"]; 

資本「YYYY」是用於「創周」基於日曆。

參見:統一Date_Format_Patterns

BTW,的dateValNSLog會表明,問題是輸入格式。

0

您的語言環境是否與您嘗試解析的格式相對應?默認情況下,NSDateFormatter使用當前的語言環境。

0

輸入日期格式應該是:

[dateFormat setDateFormat:@"dd MMMM yyyy HH:mm"];