Objective c 如何获取两个日期之间的月和年的名称
我想取两个日期之间的月份和年份的名称。假设我的开始日期是2010年1月23日,结束日期是2011年2月25日,因此我希望获得与年份相关的月份列表,例如2010年1月、2010年2月--2011年2月 您要使用的是NSDateFormatter。文件说: 创建NSDateFormatter的实例 NSDate(和)的字符串表示形式 NSCalendarDate)对象,并转换 日期和日期的文本表示法 将时间转换为NSDate对象。你可以 表示日期的表示 并灵活使用预设时间 格式样式或自定义格式 字符串Objective c 如何获取两个日期之间的月和年的名称,objective-c,ios4,Objective C,Ios4,我想取两个日期之间的月份和年份的名称。假设我的开始日期是2010年1月23日,结束日期是2011年2月25日,因此我希望获得与年份相关的月份列表,例如2010年1月、2010年2月--2011年2月 您要使用的是NSDateFormatter。文件说: 创建NSDateFormatter的实例 NSDate(和)的字符串表示形式 NSCalendarDate)对象,并转换 日期和日期的文本表示法 将时间转换为NSDate对象。你可以 表示日期的表示 并灵活使用预设时间 格式样式或自定义格式 字符
如果需要确定两个日期之间的月份,可以使用NSCalendar。以下是我的大致操作方法(警告:在浏览器中键入,yadda yadda): 这将为您提供一个
NSDate
对象数组,这些对象表示相隔大约一个月的日期,从开始日期开始,到结束日期或大约结束日期结束
如果您想以可读的方式显示它们,您将使用NSDateFormatter
:
NSDateFormatter *f = [[NSDateFormatter alloc] init];
[f setDateFormat:@"MMMM yyyy"];
for (NSDate *date in dates) {
NSLog(@"%@", [f stringFromDate:date]);
}
[f release];
当我在我的计算机上运行此程序时,我得到:
EmptyFoundation[3327:a0f] January 2010
EmptyFoundation[3327:a0f] February 2010
EmptyFoundation[3327:a0f] March 2010
EmptyFoundation[3327:a0f] April 2010
EmptyFoundation[3327:a0f] May 2010
EmptyFoundation[3327:a0f] June 2010
EmptyFoundation[3327:a0f] July 2010
EmptyFoundation[3327:a0f] August 2010
EmptyFoundation[3327:a0f] September 2010
EmptyFoundation[3327:a0f] October 2010
EmptyFoundation[3327:a0f] November 2010
EmptyFoundation[3327:a0f] December 2010
EmptyFoundation[3327:a0f] January 2011
EmptyFoundation[3327:a0f] February 2011
这似乎有点复杂,但它有两个优点:
- 无论您使用的是哪种日历系统,它都会工作。只需将
调用更改为不同的日历,即可在该日历中使用(希伯来语、伊斯兰语等)[NSCalendar currentCalendar]
- 它用奇异的天数来表示月份(28天对29天,或者日历上有闰月[是的,它们确实存在])
EmptyFoundation[3327:a0f] January 2010
EmptyFoundation[3327:a0f] February 2010
EmptyFoundation[3327:a0f] March 2010
EmptyFoundation[3327:a0f] April 2010
EmptyFoundation[3327:a0f] May 2010
EmptyFoundation[3327:a0f] June 2010
EmptyFoundation[3327:a0f] July 2010
EmptyFoundation[3327:a0f] August 2010
EmptyFoundation[3327:a0f] September 2010
EmptyFoundation[3327:a0f] October 2010
EmptyFoundation[3327:a0f] November 2010
EmptyFoundation[3327:a0f] December 2010
EmptyFoundation[3327:a0f] January 2011
EmptyFoundation[3327:a0f] February 2011