Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/102.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone NSDate始终显示空_Iphone_Ios_Ios6_Nsdate_Nsdateformatter - Fatal编程技术网

Iphone NSDate始终显示空

Iphone NSDate始终显示空,iphone,ios,ios6,nsdate,nsdateformatter,Iphone,Ios,Ios6,Nsdate,Nsdateformatter,我在应用程序中使用了NSDate概念。在我的一个类中,我为日期实例设置了[NSDate date],并在下一个类中使用它。它非常适合我,但是如果我使用这个日期,它会给我5.30小时的时间,所以我使用了NSDateFormatter来更改它,但是我得到了一个空响应 NSLog(@"update date= %@",pullToRefreshManager_.pullToRefreshView.lastUpdateDate); NSDateFormatter *dateFormat

我在应用程序中使用了
NSDate
概念。在我的一个类中,我为日期实例设置了
[NSDate date]
,并在下一个类中使用它。它非常适合我,但是如果我使用这个日期,它会给我5.30小时的时间,所以我使用了
NSDateFormatter
来更改它,但是我得到了一个空响应

    NSLog(@"update date= %@",pullToRefreshManager_.pullToRefreshView.lastUpdateDate);
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
    NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"UTC"];
    [dateFormat setTimeZone:timeZone];
    [dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    NSString *str=[NSString stringWithFormat:@"%@",pullToRefreshManager_.pullToRefreshView.lastUpdateDate];
    NSLog(@"Str== %@",str);
    NSDate *date = [dateFormat dateFromString:[NSString stringWithFormat:@"%@",str]];
    NSLog(@"exact date= %@",date);
我要出去了

update date= 2013-08-28 07:34:23 +0000 
  Str== 2013-08-28 07:34:23 +0000
 exact date= (null)

NSDate总是以GMT的形式出现。因此,您必须根据所需的时区设置日期格式。。您可以设置设备时区,也可以使用日历设置时区。。 更新: 使用此日期格式而不是此格式

[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss Z"];
在5号线

[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss +0000"];
和8号线 既然str已经是string,为什么要使用格式为的NSString

NSDate *date = [dateFormat dateFromString:str];

您将获得null,因为从“pullToRefreshManager.pullToRefreshView.lastUpdateDate”获取的日期可能与NSDateFormatter的日期格式不同

要从字符串中获取日期,我们需要datestring和NSDateFormatter的相同日期格式

请尝试以下代码:

NSDateFormatter *formatter1=[[NSDateFormatter alloc]init];
[formatter1 setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
formatter1.timeZone = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
NSString *StrDate =[formatter1 stringFromDate:yourDate];
NSLog(@"String Date : %@",StrSunday);

NSDate *date = [formatter1 dateFromString:StrDate];
NSLog(@"Date : %@",date);

str的值是多少

我试过这部分代码

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"UTC"];
[dateFormat setTimeZone:timeZone];
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSLog(@"exact date= %@",[dateFormat stringFromDate:[NSDate date]]);

它很好地显示了日期。另一行中的某些内容必须为空。

这是我在控制台中得到的数据更新日期=2013-08-28 07:34:23+0000 Str==2013-08-28 07:34:23+0000确切日期=(空)格式不匹配-在日期格式化程序中添加“Z”。也就是说,我看不出有任何理由将其转换回日期对象。这里的日期应该一直保持不变。只需使用正确的格式输出。我已将我的时区指定为UTC,这将为您提供当前时区,但它不起作用。我们可以将此答案添加到“每日询问”类别中吗?也许在“问一个问题”之上……它显示了结果,但比我的系统时间提前了1小时@SARFARAZKHAN@sumitMundra请告知它显示结果,但比我的系统时间提前1小时您的系统时区是什么,实际结果是什么