我将12小时的日期转换为24小时,但未能获得完美的时间。 这是代码:
NSString *dateStr = @"2016-08-12T04:10:14.915Z";
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd'T'hh:mm:ss.SSS'Z'"];
[dateFormat setTimeZone:[NSTimeZone localTimeZone]];
NSDate *date = [dateFormat dateFromString:dateStr];
我的最后日期是
2016-08-11 22:40:14 +0000
怎么样?
答案 0 :(得分:0)
您获得的NSDate对象是GMT。在法国GMT -2中,如果我运行你的代码,我的时间是02:10。
假设您的GMT偏移为-5:30,我是否正确?
NSDate对象没有时区;他们代表绝对 这一刻。但是,当你问一个人的描述时(通过 将它打印在NSLog中,例如,它必须选择一个时区。最多 合理的“默认”选择是GMT。如果你自己不在GMT,那么 根据您自己的偏移金额,日期似乎不正确。
您应该始终使用NSDateFormatter,将其时区设置为 你的,在显示日期之前。
不要相信NSLog或debbuger告诉你有关NSDate的内容。 使用
NSString dateAsString = [dateFormat stringFromDate:date];
检查你的日期:)