2013-02-05 45 views
0

我想我错误地使用了NSDateFormatter。我有一个UIDatePicker。当我选择一个日期时,我的日期标签,月份标签,年份标签和时间标签被设置。NSDateFormatter格式不正确

当我点击一个保存按钮,我用这个标签建立一个日期并发送到我的服务器。 我这样做。

NSString *dateStringBegin = [NSString stringWithFormat:@"%@ %@ %@ %@",lblBeginDay.text,lblBeginMonth.text,lblBeginYear.text,lblBeginTime.text]; 

//LOG dateStringBegin = 7 februari 2013 11:21 

但我的服务器只接受一个字符串,它看起来像这样2013-02-07 11:21

现在我在代码中这样做。

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
    [dateFormat setDateFormat:@"d MMMM YYYY hh:mm"]; 
    NSDate* date = [dateFormat dateFromString:dateStringBegin]; 

    NSDateFormatter *dateFormat2 = [[NSDateFormatter alloc] init]; 
    [dateFormat2 setDateFormat:@"YYYY-MM-dd HH:mm"]; 
    NSString *dateStringBegin2 = [dateFormat2 stringFromDate:date]; 

现在,当我看看我的dateStringBegin2是怎样的时候,我看到了这个。

//LOG dateStringBegin2 = 2013-12-28 11:21 
+0

http://iphoneappcode.blogspot.in/2012/08 /nsdateformatter-example-in-iphone-sdk.html –

回答

0

检查这个代码: -

NSString *dateStringBegin = @"7 february 2013 11:21"; 
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
    [dateFormat setDateFormat:@"dd MMMM yyyy hh:mm"]; 
    NSDate* date = [dateFormat dateFromString:dateStringBegin]; 

    NSDateFormatter *dateFormat2 = [[NSDateFormatter alloc] init]; 
    [dateFormat2 setDateFormat:@"yyyy-MM-dd HH:mm"]; 
    NSString *dateStringBegin2 = [dateFormat2 stringFromDate:date]; 
    NSLog(@"Date : %@",dateStringBegin2); 

希望它可以帮助你..

+0

这对我有用! – Steaphann

0

变化:

[dateFormat setDateFormat:@"d MMMM YYYY hh:mm"]; 
[dateFormat2 setDateFormat:@"YYYY-MM-dd HH:mm"]; 

要:

[dateFormat setDateFormat:@"d MMMM yyyy hh:mm"]; 
[dateFormat2 setDateFormat:@"yyyy-MM-dd HH:mm"]; 

这里的问题是,YYYY使用指定年份组成。这是一个常见的错误是使用YYYY。 yyyy指定日历年,而YYYY指定ISO年份周历中使用的年份(“年份周”)。在大多数情况下,yyyy和yyyy产生相同的数字,但它们可能不同。通常你应该使用日历年。

0

更改日期格式

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