更改日期格式从12/12/12到2012-12-12 ios6

时间:2012-12-24 19:36:00

标签: objective-c ios ios6 nsdate nsdateformatter

我试过了:

  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

我应该如何达到上述结果我不知道问题出在哪里。请帮助。我真的很感谢帮助。谢谢你。

4 个答案:

答案 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 ......