NSString到NSDate提供错误的日期

时间:2017-02-02 10:40:30

标签: ios objective-c xcode nsstring nsdate

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

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

1 个答案:

答案 0 :(得分:2)

使用当前区域设置使您当前的时区用于将日期转换为字符串。

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

否则它将是UTC。