我的输入字符串是
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 ..我在哪里做错了?
答案 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"];