欧洲的UTC TimeZone提供2014年而不是2013年

时间:2013-01-04 15:07:17

标签: iphone ios timezone utc

我使用“UTC”来设置timeZone。

如果“系统设置 - >常规 - >区域格式”在美国,则日期为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]];

有人有这个问题吗?

2 个答案:

答案 0 :(得分:4)

永远不要在日期格式化或解析中使用YYYY。这是一个ISO年份,它将搞砸它接触到的任何东西。问苹果 - 这就是1月1日iOS中导致DND错误的原因。

始终使用yyyy。

答案 1 :(得分:1)

我认为它与你日期格式的'YY'有关。尝试将其更改为小写'yy'。 (别问我原因!)

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