今天下午遇到一个问题.
描述: 找userDate之前大约三个月(相当于90天)的日期是多少?
方法:使用了下面的方法:
NSDate *threeMonthBeforeDate = [NSDate dateWithTimeInterval:-60*60*24*30*3 sinceDate:userDate];
但是结果总是不对,犹豫了好久,最后发现是userDate不对,按道理说不应该啊。参数应该没问题啊。
原因是这样的:userDate字符串时间:例如:2014-03-04。然后使用NSDateFormatter进行的格式话,应该不会有问题的。就在这里。
NSDateFormatter写成这样:
NSDateFormatter *dateFormater = [[[NSDateFormatter alloc] init] autorelease];
[dateFormater setDateFormat:@"YYYY-MM-dd"];
你能发现问题吗??
YYYY应该是小写,不是大写。应该是这样的
[dateFormater setDateFormat:@"yyyy-MM-dd"];
另外:
1.IOS7不会有这个问题,IOS5,6会出现这个bug。时间format的字符串一定要注意大小写。
2.yyyy-MM-dd HH:mm:ss