2013-02-05 73 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"];