如何将字符串转换为字符串的日期和日期?

时间:2012-02-15 13:45:42

标签: iphone nsdateformatter

我的输入字符串是

NSString *inputString=@"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 ..我在哪里做错了?

4 个答案:

答案 0 :(得分:4)

日期格式不正确,请使用:

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

资本“YYYY”用于“年度周”日历。

请参阅:unicode Date_Format_Patterns

BTW,NSLog的{​​{1}}会显示问题出在输入格式上。

答案 1 :(得分:2)

您使用错误的日期格式格式,也无需创建另一个NSDateFormatter实例 -

    NSString *inputString=@"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];

答案 2 :(得分:0)

您的区域设置是否与您尝试解析的格式相对应?默认情况下,NSDateFormatter使用当前的语言环境。

答案 3 :(得分:0)

输入日期格式应为:

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