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小时您的系统时区是什么,实际结果是什么