我写了一个代码块
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.locale = [NSLocale localeWithLocaleIdentifier:@"en_US"];
[dateFormatter setDateFormat:@"YYYY-MM-dd"];
NSLog(@"date:%@,string:%@", aDate,[dateFormatter stringFromDate:aDate]);它适用于大多数date,但如果date是2013-12-30,则它的工作方式很奇怪。
日志字符串为date:2013-12-30 16:00:00 +0000,string:2014-12-31
为什么?为什么2013-12-30转换为字符串的日期是2014-12-31?
发布于 2014-01-06 11:06:36
你给它的NSDate是格林威治时间下午4点。你可能不在格林尼治标准时间,所以它格式化了你当前时区的时间/日期,它至少晚了8小时。
使用本地时区创建您的NSDate,或者如果您确实想要一个没有时间的日期,请使用NSDateComponents。
https://stackoverflow.com/questions/20942272
复制相似问题