-2

我有一个不能正常工作的 NSDateformatter。我的日期是这样的字符串。

2013-02-20 00:00:00

我需要像这样将它作为 NSDate 返回

2013-02-20

我现在得到的就是这个。

 NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
 [dateFormat setDateFormat:@"yyyy-MM-dd hh:mm:ss"];

[dateFormat setDateFormat:@"yyyy-MM-dd"];
[dateFormat dateFromString:dateString]

但这不起作用。有什么帮助吗?

4

2 回答 2

4
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
NSDate* date=[dateFormat dateFromString: dateString];
[dateFormat setDateFormat:@"yyyy-MM-dd"];
NSLog(@"%@",[dateFormat stringFromDate: date]);

这将工作尝试

于 2013-02-01T05:48:18.280 回答
2

如果您有多个要解析的日期,则值得创建一个输入和一个输出日期格式化程序

static NSDateFormatter *inputDateFormatter;
static NSDateFormatter *outputDateFormatter;
if (!inputDateFormatter) {
    inputDateFormatter= [[NSDateFormatter alloc] init];
    [inputDateFormatter setDateFormat:@"yyyy-MM-dd hh:mm:ss"];

    outputDateFormatter = [[NSDateFormatter alloc] init];
    [outputDateFormatter setDateFormat:@"yyyy-MM-dd"];
}
NSDate *date = [inputDateFormatter dateFromString:@"2013-02-20 00:00:00"];

NSString *string = [outputDateFormatter stringFromDate:date];

NSLog(@"%@", string);

结果

2013-02-20

由于创建 NSDateFormatter 的成本很高,因此您应该将它们存储在单例中或将它们声明为静态以便为该方法创建一次。


我需要像这样将它作为 NSDate 返回

日期没有格式,它只是一个时间点。您必须在需要的地方创建一个具有所需格式的字符串。

于 2013-02-01T01:18:10.907 回答