您可以使用NSCalendar
获取日期的月份,日期和年份组件,操作它们并重新组合它们。这是一些示例代码。
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *dateComponents = [calendar components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:date];
[otherDateComponents setYear:[dateComponents year]];
[otherDateComponents setMonth:[dateComponents month]];
[otherDateComponents setDay:[dateComponents day]];
NSDate *newDate = [calendar dateFromComponents:otherDateComponents];
注意的是,由于当前日历是特定于语言环境,你回来的值不会在所有设备上的相同。你可能希望为你的目的指定一个特定的日历。 NSGregorianCalendar
是西方最常用的一种。
'NSDateFormatterMediumStyle'是区域特异性的。虽然不太可能,但它可能不会返回你想要的字段。只要您可以承担公历,您就可以使用明确的方法(如接受的解决方案或自定义格式字符串)更安全。 – warrenm 2010-06-01 17:32:06