欧洲的UTC时区给出的是2014年而不是2013年



我使用"UTC"来设置时区。

如果"System Settings->General->Region Format"为USA,则日期为2013。如果是在欧洲,日期是2014年。我使用下面的代码

NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
[formatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
NSDate *dataTmp = [formatter dateFromString:[[[self.commManager.bolsaDic objectForKey:@"data"] objectAtIndex:0] objectForKey:@"TradeTimeUtc"]];
[formatter setDateFormat:@"dd-MM-YY HH:mm"];       
[formatter setTimeZone:[NSTimeZone systemTimeZone]];

有人遇到这个问题吗?

永远不要在你的日期格式或解析中使用YYYY。今年是国际标准化年,它会搞砸任何东西。问苹果——这就是导致iOS 1月1日出现DND漏洞的原因。

始终使用yyyy

我相信这和你们日期格式中的YY有关。试着把它改成小写的"yy"。(别问我为什么!)

编辑:啊,显然大写Y返回当前周开始的年份,所以如果它是2014年1月1日,但是是星期三,那么这周开始于2013年。

相关内容

  • 没有找到相关文章

最新更新