2

我试过了 :

  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

4 回答 4

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 日期格式模式。

这里的第一次转换是将字符串更改为日期,然后我们@"yyyy-MM-dd"用于以所需格式再次转换为字符串。

于 2012-12-24T19:40:50.440 回答
3

如果您想要以特定方式格式化日期,您可以继续使用NSDateFormatter. 只需添加. 另外,正如 ACB 所指出的,如果要使用,则需要转换 from ,否则需要使用[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSString *string = [dateFormatter stringFromDate:dateCheck];
NSLog(@"Date = %@", string);


@"12/12/2012"MM-dd-yyyyMM-dd-yy

于 2012-12-24T19:42:34.760 回答
3

您需要两个格式化程序。一个将原始字符串转换为NSDate(就像您现在一样),第二个将原始字符串转换NSDate为具有所需格式的新字符串。

请注意,当您登录为 时NSDate,它将始终以您所看到的格式显示。

于 2012-12-24T19:42:49.197 回答
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...

于 2012-12-24T19:47:49.590 回答