2012-02-15 92 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"];