我试过了:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"MM/dd/yyyy"];
NSDate *dateCheck = [dateFormatter dateFromString:@"12/12/12"];
NSLog(@"Date = %@", dateCheck);
输出值为:Date = 2012-12-11 18:30:00 +0000
我应该如何达到上述结果我不知道问题出在哪里。请帮助。我真的很感谢帮助。谢谢你。
答案 0 :(得分:4)
试试这个,
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"MM/dd/yy"];
NSDate *dateCheck = [dateFormatter dateFromString:@"12/12/12"];
NSLog(@"Date = %@", dateCheck);
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSString *dateString = [dateFormatter stringFromDate:dateCheck];
NSLog(@"dateString = %@", dateString);
<强>输出:强>
dateString = 2012-12-12
@"MM/dd/yyyy"
代表12/12/2012而不是12/12/12。如果要转换为2012-12-12,则需要将日期格式设置为@"yyyy-MM-dd"
,然后再次转换为字符串,如上所示。
有关日期格式的详细信息,请查看此Unicode Date Format Patterns.
此处第一次转换是将字符串更改为日期,然后我们使用@"yyyy-MM-dd"
以所需格式再次转换为字符串。
答案 1 :(得分:3)
如果您想要以特定方式格式化日期,可以继续使用NSDateFormatter
。只需添加[dateFormatter setDateFormat:@"yyyy-MM-dd"];
。
NSString *string = [dateFormatter stringFromDate:dateCheck];
NSLog(@"Date = %@", string);
另外,正如ACB所说,如果您想使用@"12/12/2012"
,则需要转换MM-dd-yyyy
,否则您需要使用MM-dd-yy
1}}
答案 2 :(得分:3)
您需要两个格式化程序。一个用于将原始字符串转换为NSDate
(与您现在一样),第二个用于将NSDate
转换为具有所需格式的新字符串。
请注意,当您以NSDate
身份登录时,它将始终以您所看到的格式显示。
答案 3 :(得分:2)
`Date = 2012-12-11 18:30:00 +0000`
来自
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"MM/dd/yy"];
NSDate *dateCheck = [dateFormatter dateFromString:@"12/12/12"];
NSLog(@"Date = %@", dateCheck);
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSString *dateString = [dateFormatter stringFromDate:dateCheck];
NSLog(@"dateString = %@", dateString);
您的日期正确无误。由于时间戳和区域设置不同,因此您无法看到2012-12-12 ......