NSDateFormatter 输出不正确的年份
NSDateFormatter outputting incorrect year
我有一个以毫秒为单位的日期时间戳:
145146240000
我根据该时间戳创建了一个 NSDate 对象:
NSTimeInterval seconds = [@"1451462400000" doubleValue] / 1000.0f;
NSDate *transactionDate = [NSDate dateWithTimeIntervalSince1970:seconds];
NSLog(@"%@", transactionDate);
我记录 transactionDate
的值: 2015-12-30 08:00:00 +0000
然后我使用 NSDateFormatter
:
输出这个日期
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"d MMMM YYYY"];
NSLog(@"%@", [dateFormatter stringFromDate:transactionDate]);
这错误地将年份输出为 2016!:
30 December 2016
怎么会这样?我当地的时区是 GMT+2,所以如果有的话,当格式化程序解析时它可能会关闭两个小时,但不会关闭一整年!
请使用 yyyy 作为年份格式,例如
[dateFormatter setDateFormat:@"d MMMM yyyy"];
希望对你有所帮助
更多信息请看
Y returns 2012 while y returns 2011 in SimpleDateFormat
我有一个以毫秒为单位的日期时间戳:
145146240000
我根据该时间戳创建了一个 NSDate 对象:
NSTimeInterval seconds = [@"1451462400000" doubleValue] / 1000.0f;
NSDate *transactionDate = [NSDate dateWithTimeIntervalSince1970:seconds];
NSLog(@"%@", transactionDate);
我记录 transactionDate
的值: 2015-12-30 08:00:00 +0000
然后我使用 NSDateFormatter
:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"d MMMM YYYY"];
NSLog(@"%@", [dateFormatter stringFromDate:transactionDate]);
这错误地将年份输出为 2016!:
30 December 2016
怎么会这样?我当地的时区是 GMT+2,所以如果有的话,当格式化程序解析时它可能会关闭两个小时,但不会关闭一整年!
请使用 yyyy 作为年份格式,例如
[dateFormatter setDateFormat:@"d MMMM yyyy"];
希望对你有所帮助
更多信息请看
Y returns 2012 while y returns 2011 in SimpleDateFormat