iOS NSDateFormatter从字符串返回旧日期
iOS NSDateFormatter从字符串返回旧日期,ios,nsdateformatter,Ios,Nsdateformatter,NSDateFormatterdateFromString已获取较旧的日期 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"yyyy-MM-dd"]; NSDate *date = [dateformatter dateFromString:@"2015-05-18"]; 上述函数返回日期为2015-05-17 11:39:18+0000,而不是 20
NSDateFormatter
dateFromString
已获取较旧的日期
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSDate *date = [dateformatter dateFromString:@"2015-05-18"];
上述函数返回日期为2015-05-17 11:39:18+0000,而不是
2015-05-18这是显示当前日期的有效代码…可能可以解决您的问题..您应该使用此代码
NSDate *Date = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSString *dateFormated = [dateFormatter stringFromDate:Date];
NSLog(@"%@", dateFormated);
实际上,您正在打印NSDate,如果您正在打印日期,则编译器会使用当前时区将
日期
转换为字符串
。如果您希望在NSString
表单中实际转换的date
,请再添加一行,将NSDate转换为NSString,如下图所示
NSDateFormatter * dFormatter = [[NSDateFormatter alloc] init];
[dFormatter setDateFormat:@"yyyy-MM-dd"];
NSDate *date = [dFormatter dateFromString:@"2015-05-18"];
NSLog(@"String : %@",[dFormatter stringFromDate:date]);
输出:
2015-05-18
NSDate*date=[dateformatter dateFromString:@“2015-05-17 11:39:18+0000”]?[格式化程序设置时区:[NSTimeZone timeZoneForSecondsFromGMT:0]];我只想使用系统/默认/本地时区获取当前日期。我不想用GMT或UCT时区静态地限制用户。在这里,您可以在日志中打印日期,以便记录输出。它需要NSString,所以编译器会自动将您的日期转换为NSString。这就是您看到较旧日期的原因。如果您想更准确地了解它的内容,那么执行此操作的方法是
[NSDate description]
。@Dhvani Puar,如果您没有得到它,请告诉我。我不想要字符串形式的输出,而是日期形式的输出。如果您从代码中打印日期,它将给您一天的时间。@DhvaniPuar,实际上我想说的是,要查看正确的日期,只需在任何编译器显示正确日期的同时,将鼠标指针移到日期变量上。您正在打印该日期,因此显示的是较旧的日期