我正在使用NSDateFormatter在我的iPhone應用程序中設置我的日期,並且日期顯示正常。然而,我發現所有的語言環境(我的應用程序支持多達12種不同的語言)都堅持我通過setDateFormat指定的日期格式。理想情況下,我希望日期格式以用戶的區域設置自然的形式出現,而不是遵循我的格式(對於英語非常適用,但對其他語言環境可能不太自然)。如何使NSDateFormatter顯示區域特定的日期?
以下是我的代碼:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateStyle:NSDateFormatterMediumStyle]; [dateFormatter setTimeStyle:NSDateFormatterShortStyle]; [dateFormatter setDateFormat:@"MMMM dd, yyyy kk:mm:ss"]; self.creationDate.text = [dateFormatter stringFromDate:creationTimeStamp];
該解決方案比使用-localizedStringFromDate API更好,因爲由-localizedStringFromDate返回的字符串將反映時區因素,有時對於某些區域來說日期/時間將不相關。要刪除時區組件,我們需要另外做到這一點:[dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; – 2015-01-13 06:38:15