2011-10-24 77 views
0

我想將NSString轉換爲NSDate。iPhone:在將NSString轉換爲NSDate時沒有得到正確的輸出

所以,我想下面的代碼:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
    [formatter setDateFormat:@"dd-MM-yyyy"]; 

    NSString *checkInDate = lblCheckIn.text; 
    NSString *checkOutDate = lblCheckOut.text; 

在這裏我得到下面的輸出。

NSLog(@"\nCheckIn Date : %@\nCheckOut Date : %@",checkInDate,checkOutDate); 
    // CheckIn Date : 26-10-2011 
    // CheckOut Date : 29-10-2011 

現在我想這個的NSString轉換成NSDate的與dd-MM-yyyy甲。

NSDate *checkOut = [formatter dateFromString:checkOutDate]; 
    NSDate *checkIn = [formatter dateFromString:checkInDate]; 
    [formatter release]; 

但我得到了以下輸出。

NSLog(@"\nCheck In : %@\nCheck Out : %@",checkIn,checkOut); 
    // Check In : 2011-10-25 18:30:00 +000 
    // Check Out : 2011-10-28 18:30:00 +000 

什麼可能是錯的?

+0

我認爲你應該設置NSDateFormatter多一點「配置」,以獲得你想要的NSDate。另外如果你只是想要像NSStrings的第一個NSLog那樣的日期,就像那樣,使用NSStrings,如果你把它存儲在CoreData或者其他東西中,當你檢索它時,只需要再次格式化它,它應該做的伎倆,希望對你有幫助。 –

回答

2

我希望你在+5:30時區.. 你的代碼沒有錯。它僅在GMT時區打印時間。

+0

是我在+5:30時區。但從我的代碼,它應該產生像26-10-2011。 – Devang

+1

不,NSDate總是在GMT時區給出時間。只需嘗試記錄當前時間。 NSLog(@「%@」,[NSDate date]);'。它將以GMT格式打印時間。 – Ilanchezhian

1
NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"dd-MM-yyyy"]; 
NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT"]; 
[formatter setTimeZone:gmt]; 
NSString *checkInDate [email protected]"26-10-2011"; 
NSString *checkOutDate [email protected]"29-10-2011"; 
NSDate *checkOut = [formatter dateFromString:checkOutDate]; 
NSDate *checkIn = [formatter dateFromString:checkInDate]; 

    [formatter release];