NSDateformatter格式不正确

时间:2013-02-01 01:06:32

标签: iphone ios objective-c nsdate nsdateformatter

我有一个无法正常工作的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]

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

2 个答案:

答案 0 :(得分: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]);

这会奏效 试试吧

答案 1 :(得分: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返回,就像这样

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