将下面的日期字符串转换成其他格式。操作如下:
NSLog(@"datestring is NOW %@",_dayObject.p_date);
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"YYYY-MM-DD"];
NSDate *date = [dateFormat dateFromString:_dayObject.p_date];
NSLog(@"date transformed %@",date);
[dateFormat setDateFormat:@"EEEE, dd/MM/YYYY"];
[dateFormat setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];
NSString *dateStr = [dateFormat stringFromDate:date];
NSLog(@"datestring is AFTER %@",dateStr);
但是在NSLog中得到:
2013-04-18 08:43:36.181 mosaqua2[9629:907] datestring is NOW 2013-05-04
2013-04-18 08:43:36.184 mosaqua2[9629:907] date transformed 2013-01-03 23:00:00 +0000
2013-04-18 08:43:36.184 mosaqua2[9629:907] datestring is AFTER donderdag, 03/01/2013
正确的格式是: Saterday, 04/05/2013
仅仅打印获得时间是格林威治时间, 是跟北京时间相差8个小时的 下面这个是我写的代码, 题主可以参考下 // 获取时间戳并且转化成字符串 NSDateFormatter *myFormatter = [[NSDateFormatter alloc]init]; NSDate *myDate = [NSDate date]; // 打印出来的时间是格林威治时间,想差8个小时,但是把这个时间转成字符串就是正确的北京时间 NSLog(@"currentTime is ---- %@", myDate); // 格林威治时间 [myFormatter setDateFormat:@"年月日是:yyyy-MM-dd 时分秒是:HH:mm:ss"]; // 把时间戳转成字符串 NSString *currentTimeStr = [myFormatter stringFromDate:myDate]; NSLog(@"curremtTimeStr is ------%@", currentTimeStr); // 按字符串打印不会有时差
答案来源网络,供您参考
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。