我正在尝试将NSString转换为NSDate。我的传入字符串是02/03/2015我的转换是这样完成的:
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
dateFormat.locale = [NSLocale currentLocale];
dateFormat.timeZone = [NSTimeZone localTimeZone];
dateFormat.timeStyle = NSDateFormatterShortStyle;
dateFormat.dateStyle = NSDateFormatterShortStyle;
dateFormat.locale = [NSLocale currentLocale];
[dateFormat setDateFormat:@"dd/MM/yyyy"];
NSDate *date = [dateFormat dateFromString:jsonObject[@"chartDate"]];
我的输出是:“2015-03-01 23:00:00 +0000”所以突然之间的日期是一天(这是从Coredata中检索到的,它是NSDate)。
有人可以解释我的错吗?
答案 0 :(得分:4)
答案 1 :(得分:2)
你错了的是不了解NSDate的含义。 NSDate包含没有时区的时间点。 NSDate使用UTC显示,即显示伦敦没有夏令时的时间。如果你在纽约,那么在纽约的今天(午夜)开始,伦敦的时间是早上6点,这就是NSDate所展示的。如果你在莫斯科,那么在莫斯科的今天(午夜)开始,伦敦的时间将是前一天晚上10点,这就是NSDate所展示的。