2017-01-11 27 views
0

我的輸入NSString2017-01-11 5:33:55 am +0000。我的代碼是:使用am/pm和timezone將NSString轉換爲NSDate

date = @"2017-01-11 5:33:55 am +0000"; 
    uploadFormatter.dateFormat = @"yyyy-MM-dd HH:mm:ss a Z"; 
    [uploadFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]]; 
    NSDate *theDate = [uploadFormatter dateFromString:date]; 

但返回NSDate總是2017-01-11 0:33:55 UTC不管輸入小時。這意味着如果輸入是2017-01-11 3:33:55 am +0000,結果也是一樣的。

有沒有人遇到過這個問題?任何想法將不勝感激。

+3

'HH'爲24小時格式以四個小時,但因爲你有AM/PM,它明確的12個小時格式。所以至少用'hh'改變'HH'。 – Larme

+0

@Larme它正好解決了這個問題。你能幫忙發表評論作爲答案,我可以接受嗎?非常感謝!它拯救了我的生命。 –

回答

1

HH是24h格式的四小時,但由於您有「am」/「pm」,所以顯然是12h格式。 更改HHhh在您的dateFormat

請注意格式的文檔可用here,對於iOS7 +,其格式爲 here

0

使用此日期格式:

[uploadFormatter setDateFormat:@"yyyy-MM-dd hh:mm:ss a Z"];