2013-03-06 128 views
-4

我用下面這段代碼字符串轉換爲日期,但時間格式不正確來臨,當我登錄的日期日期格式問題

NSDateFormatter *formate = [[[NSDateFormatter alloc] init] autorelease]; 
    [formate setDateFormat:@"MM/dd/yyyy HH:mm a"]; 
    [formate setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; 
    NSString *strConcat = @"03/06/2013 2:59 PM"; 
    NSDate *date = [formate dateFromString:strConcat]; 
    NSLog(@"Output :%@",date); 

輸出2013-03-06 12:59:00 +0000

可以在任何一個請在我把它轉換成日期錯誤的地方。

在此先感謝。

+0

HH代替HH? – Larme 2013-03-06 12:45:43

+2

http://stackoverflow.com/questions/4086492/formatting-date-and-time-with-iphone-sdk – 2013-03-06 12:46:10

回答

1

你的錯誤是HH DateFormat中,你需要使用hh

// HH給人14:59

// HH給人12:59

NSDateFormatter *formate = [[NSDateFormatter alloc] init]; 
[formate setDateFormat:@"MM/dd/yyyy hh:mm a"]; 
[formate setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; 
NSString *strConcat = @"03/06/2013 2:59 PM"; 
NSDate *date = [formate dateFromString:strConcat]; 
NSLog(@"Output :%@",date); 
+1

這不是一個時區問題。這是由於「HH」(24小時)和「hh」(12小時)格式之間的區別。 – 2013-03-06 13:15:48

+0

@MartinR:2:59 PM將是14:59不是嗎?這裏hh給14:59,而HH 12:59 – 2013-03-06 13:17:43

+1

如果你使用'hh:mm a'作爲日期格式,那麼'2:29 PM'被正確解析爲'14:59'。 24小時格式加上AM/PM的'HH'組合可能不起作用(反正它沒有多大意義)。 - 時區顯式設置爲GMT,因此它不能成爲時區問題 – 2013-03-06 13:23:38