我的代码:
NSString *dateStr = @"03-02-2017";//[responseObject objectForKey:@"event_date"];
NSLog(@"'%@'", dateStr);
// Convert string to date object
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_HK"];
[dateFormat setLocale:locale]; //To fix the format into something like: 10 Feb 2017, but not: 10 2月 2017
[dateFormat setDateFormat:@"dd-MM-YYYY"];
NSDate *date = [dateFormat dateFromString:dateStr];
NSLog(@"'%@'", date);
// Convert date object to desired output format
[dateFormat setDateFormat:@"dd MMM YYYY"];
dateStr = [dateFormat stringFromDate:date];
NSLog(@"'%@'", dateStr);
在日志中返回
' 2017年3月2日'
' 2016-12-24 16:00:00 + 0000'
' 2016年12月25日'
任何人都知道为什么会这样吗?我在谷歌搜索大多数情况是由时区造成的。但是,我很确定它不是关于timeZone的,因为日期的差异太大了,但我无法弄清楚这个问题的根源。
答案 0 :(得分:1)
我认为你的日期格式错误。
应该是
dd-MM-yyyy
答案 1 :(得分:0)
我在回答objective-c - NSDateFormatter returns wrong date
时发现我的格式错误并由http://nsdateformatter.com引用。 它应该是“yyyy”而不是“YYYY”