1

这可以重复一次,但我无法找到正确的解决方案。

NSDateFormatter *dateFormat = [[[NSDateFormatter alloc] init] autorelease];
[dateFormat setDateFormat:@"YYYY-MM-dd"];
 NSString *dateString = [dateFormat stringFromDate:receiveddate];
 NSLog(@"Date: %@", dateString);

receiveddate 是 NSDate 并且它的值是2012-06-11 00:00:00 +0000 我只想将上面的日期转换成 NSString 值应该只是2012-06-11

但是当我检查它时,它给了我不同的输出,即2012-00-11 00:00:00。真奇怪。我怎样才能摆脱这个问题。

4

5 回答 5

5

你可以使用这个:

[formatter setDateStyle:NSDateFormatterShortStyle];

[formatter setTimeStyle:NSDateFormatterNoStyle];

[formatter setDateFormat:@"yyyy-MM-dd"];

于 2012-06-06T08:28:46.270 回答
1

嗨,我正在使用您发布的相同代码,它为我提供了您想要的正确输出。所以我认为你收到的日期格式有问题。这是我使用的代码

    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init] ;
    [dateFormat setDateFormat:@"YYYY-MM-dd"];
    NSString *dateString = [dateFormat stringFromDate:[NSDate date]];
    NSLog(@"Date: %@", dateString);

OUTPUT:Date: 2012-06-06
于 2012-06-06T08:40:23.730 回答
0

用这个

[dateFormat setDateFormat:@"YYYY-MM-dd"];
dateFormat.dateStyle = kCFDateFormatterShortStyle;
于 2012-06-06T08:17:36.970 回答
0

我发现的问题是2012-06-11 00:00:00 +0000不是有效的 NSDate。

于 2012-06-06T08:23:38.327 回答
0

也许问题是您使用的是YYYY 而不是 yyyy

至少我是这样使用它的: [mDateFormatter setDateFormat:@"yyyy-M-dd"];获取2012-6-5.

于 2012-06-06T09:59:54.447 回答