2

我正在使用“UTC”来设置时区。

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

有人遇到过这个问题吗?

4

2 回答 2

4

永远不要在日期格式或解析中使用 YYYY。这是一个 ISO 年,它会搞砸它所涉及的任何事情。询问 Apple - 这就是 1 月 1 日 iOS 出现 DND 错误的原因。

始终使用 yyyy。

于 2013-01-04T15:24:06.620 回答
1

我相信这与您的日期格式中的“YY”有关。尝试将其更改为小写“yy”。(不要问我为什么!)

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

于 2013-01-04T15:10:35.330 回答