2017-01-19 126 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小时。