2017-01-19 175 views
0

我想格式化日期使用NSDateFormatter但是對於某些日期,格式相同的方式,它返回沒有第一個數字的時間,併爲其他人返回null。NSDateFormatter返回空值

NSDateFormatter *dateFormat = [NSDateFormatter new]; 
[dateFormat setDateFormat:@"EEEE dd/MM/yyyy HH:mm"]; 
dateFormat.locale = [NSLocale localeWithLocaleIdentifier:@"en_AU"]; 
NSDate *startDate = [dateFormat dateFromString:startString]; 
NSDate *endDate = [dateFormat dateFromString:endString]; 

此日期: 「星期六2017年1月21日17:00」 將返回(空)

此日期: 「星期四2017年2月9日14:00」 將返回2017-09- 02 04:00:00 +0000

此日期: 「星期四2017年2月9日20:30」 將回到2017年9月2日10:30:00 +0000

任何人都可以闡明一些輕我錯了。 謝謝

+4

「dd/MM」:日/月但是「1/21 /」,因爲第21個月很明顯MONTH/DAY ...而在澳大利亞東部,格林尼治標準時間爲-10。這就是爲什麼它刪除10個小時。 – Larme

+0

謝謝你。我在一秒之前就明白了這一點,那就是我想要努力工作到很晚的時候。你是否能夠將其作爲答案,以便將其標記爲已解決 –

回答

1

EEEE dd/MM/yyyy HH:mmEEEE MM/dd/yyyy HH:mm。只是一個反轉日期和月份的小錯誤。 由於顯然「星期六1/21/2017 17:00」,意味着1月21日,因爲一年中第21個月不存在(至少,不在這裏)。

對於10小時的差異,這是由於時區。在en_AU(我猜測東海岸),與格林威治標準時差10小時。