NSString 到 NSDate 给出错误的日期

NSString to NSDate give wrong date

我有 NSString 个日期:

NSString *dateStr = @"Feb-02-17";

我尝试将其转换为日期:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"MMM-dd-yy"];
NSDate *yourDate = [dateFormatter dateFromString:dateStr];

然后在 yourDate 中我得到这个值:

2017-02-01 22:00:00 +0000

知道为什么日期之间存在差异吗?

使用当前语言环境使您当前的时区用于将日期转换为字符串。

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.locale = [NSLocale currentLocale];
[dateFormatter setDateFormat:@"MMM-dd-yy"];
NSDate *yourDate = [dateFormatter dateFromString:dateStr];

否则将使用 UTC。