我在我的应用程序中使用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)
答案 0 :(得分:0)
NSDate总是以GMT形式出现。因此,您必须根据所需的时间区域格式化日期..您可以设置您的设备timeZOne或可以使用日历来设置timeZOne .. 的更新:强> 使用此日期格式代替此
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss Z"];
答案 1 :(得分:0)
在第5行
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss +0000"];
和第8行 为什么在已经str的时候使用带有格式的NSString是字符串
NSDate *date = [dateFormat dateFromString:str];
答案 2 :(得分:0)
您将获得null,因为您从“pullToRefreshManager_.pullToRefreshView.lastUpdateDate”获取的日期可能与NSDateFormatter的日期格式不同。
要从字符串中获取日期,我们需要datetring和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);
答案 3 :(得分:0)
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]]);
它很好地显示了日期。在其他一行中,某些东西必须为空。