2014-03-06 83 views
1

我已經使用以下代碼來格式化一個日期值返回不同的日期:dateFormatter根據設備

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setLocale:[NSLocale systemLocale]]; 
[dateFormat setDateFormat:@"YYYY-MM-dd HH:mm:ss"]; 
NSDate *myDate = [dateFormat dateFromString:@"2014-03-06 06:42:21"]; 

myDate這裏對象值是針對不同的設備不同。無論設備如何,我都可以使對象值相同。

+0

請問您能否詳細說明您的問題? – Spidy

+0

你想獲取當前日期嗎? – iMeMyself

+0

這是因爲'[NSLocale systemLocale]'在你的設備和你的字符串中是不同的,你沒有給時區。 – arturdev

回答

-1

您想手動設置NSTimeZoneNSLocale以確保相同的結果。

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en"]]; 
[dateFormat setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]]; 
[dateFormat setDateFormat:@"YYYY-MM-dd HH:mm:ss"]; 
NSDate *myDate = [dateFormat dateFromString:@"2014-03-06 06:42:21"]; 
+0

仍然得到相同的結果2013-03-06 09:04:33 AM +0000。 –

-2

我得到的答案時,我改變了今年字母情況如下(年):

[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; 
0

您需要的日期格式的區域設置爲en_US_POSIX的特殊區域。

[dateFormat setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]];