我正在使用以下代码从字符串中获取日期。所有代码似乎都很好,但是当我打印输出日期时,日期有12:30的差异。
可能是什么问题?我错过了什么吗?
NSString *strDate = @"8/22/2017 7:00:00 AM";
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"MM/dd/yyyy HH:mm:ss a"];
NSDate *date = [df dateFromString:strDate];
NSLog(@"%@", [date description]);
输出:
2017-08-21 18:30:00 +0000
答案 0 :(得分:3)
小时说明符错误,12小时格式为hh
[df setDateFormat:@"MM/dd/yyyy hh:mm:ss a"];
注意:
请注意NSLog
始终以UTC格式打印日期,尽管日期格式化程序会考虑本地时区。
答案 1 :(得分:1)
试试这个:
您只需将时间设为GMT
[df setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];