将12小时转换为24小时

时间:2016-08-12 11:15:24

标签: ios objective-c nsdate nsdateformatter

我将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

怎么样?

1 个答案:

答案 0 :(得分:0)

您获得的NSDate对象是GMT。在法国GMT -2中,如果我运行你的代码,我的时间是02:10。

假设您的GMT偏移为-5:30,我是否正确?

  

NSDate对象没有时区;他们代表绝对   这一刻。但是,当你问一个人的描述时(通过   将它打印在NSLog中,例如,它必须选择一个时区。最多   合理的“默认”选择是GMT。如果你自己不在GMT,那么   根据您自己的偏移金额,日期似乎不正确。

     

您应该始终使用NSDateFormatter,将其时区设置为   你的,在显示日期之前。

不要相信NSLog或debbuger告诉你有关NSDate的内容。 使用

NSString dateAsString = [dateFormat stringFromDate:date];

检查你的日期:)

相关问题