NSDateFormatter dateFromString返回nil或当前日期

时间:2016-11-09 04:53:51

标签: ios

我在尝试将字符串格式化为NSDate时遇到了一些问题。 这是我的代码。

        NSTimeZone *outputTimeZone = [NSTimeZone defaultTimeZone];
        NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];

        [dateFormat setTimeZone:outputTimeZone];
        [dateFormat setLocale:[NSLocale currentLocale]] ;

        [dateFormat setDateFormat:@"dd/MM/yyyy HH:mm:ss"];
        NSDate *myDate = [dateFormat dateFromString:dateString];

这是我尝试格式化的字符串。

" 09/11/2016 12:27:05"

这是我得到的结果

2016-11-09 04:48:29 UTC

请帮助我尝试各种解决方案和格式,但无济于事。

  

在调用dateFromString之后,添加行NSLog(" str =%@,date =%@",dateString,myDate);.使用该日志语句的输出更新您的问题。 - rmaddy 59分钟前

这是我的输出

str = 09/11/2016 14:13:35,date = 2016-11-09 06:13:35 +0000

1 个答案:

答案 0 :(得分:-1)

使用timeZonewithAbbrevation而不是默认的timeZone。

NSTimeZone *outputTimeZone = [NSTimeZone defaultTimeZone];替换为

//对于GMT

NSTimeZone * outputTimeZone = [NSTimeZone timeZoneWithAbbreviation:@" GMT + 0:00"];

OR

//适用于UTC

NSTimeZone *outputTimeZone = [NSTimeZone timeZoneWithAbbreviation:@"UTC"];