2013-01-13 42 views
3

为什么我的NSDateFormatter返回null? 这里是我的代码:为什么我的NSDateFormatter返回null?

NSString *dateString = @"21-12-2012 11:05:15"; 
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setDateFormat:@"dd-MM-yyyy hh:mm:ss"]; 
    NSDate *dateFromString = [[NSDate alloc] init]; 
    dateFromString = [dateFormatter dateFromString:dateString]; 

    [dateFormatter setDateFormat:@"dd/MM/yyyy"]; 
    NSString *strDate = [dateFormatter stringFromDate:dateFromString]; 

strDate回报

21/12/2012 

但当:

NSString *dateString = @"13-12-2012 13:17:58"; 

strDate回报null

这是非常奇怪的,任何人都经历了相同?

+0

声明:'的NSDate * dateFromString = [[NSDate的页头] INIT]'是不必要的,下面的语句将覆盖它,只需使用:'的NSDate * dateFromString = [dateFormatter dateFromString :dateString];'。 – zaph

+0

是的,你是对的,我会重构我的代码。谢谢 – Rendy

回答

6

使用HH而不是hh。

hh通常是12小时的时间,而HH通常是24小时的时间。

[dateFormatter setDateFormat:@"dd-MM-yyyy HH:mm:ss"]; 

的一个很好的官方参考,as linked by Apple themselves,是here。正如Zaph所提到的,另一个好的表格是here

+0

哇你是正确的,谢谢!我会牢记这一点:) – Rendy

+0

没问题。如果我帮助,那么请点击勾号?谢谢。 –

+0

当然,我需要一些分钟来接受你的.. – Rendy

2

您应该使用

[dateFormatter setDateFormat:@"dd-MM-yyyy HH:mm:ss"]; 
+0

谢谢cynicalme,但我会接受其他答案,因为这是第一个答案..再次感谢:) – Rendy