将字符串转换为日期时日期不同

There is differnce in date while I convert string to date

我正在使用以下代码从字符串中获取日期。在代码中似乎一切都很好,但是当我打印输出日期时,日期有 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

小时说明符错误,12 小时格式为 hh

[df setDateFormat:@"MM/dd/yyyy hh:mm:ss a"];

注:

请注意,NSLog 始终以 UTC 格式打印日期,尽管日期格式化程序考虑了本地时区。

试试这个:

您刚刚将时间设置为 GMT

 [df setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];