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