我使用“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]];
有人有这个问题吗?
答案 0 :(得分:4)
永远不要在日期格式化或解析中使用YYYY。这是一个ISO年份,它将搞砸它接触到的任何东西。问苹果 - 这就是1月1日iOS中导致DND错误的原因。
始终使用yyyy。
答案 1 :(得分:1)
我认为它与你日期格式的'YY'有关。尝试将其更改为小写'yy'。 (别问我原因!)
编辑:啊,显然大写字母Y返回当前一周开始的那一年,所以如果是2014年1月1日而是星期三,那么这一周就开始于2013年。