Iphone 使用NSCalendar检索月份的第一天
我执行以下代码片段:Iphone 使用NSCalendar检索月份的第一天,iphone,objective-c,nsdate,nscalendar,Iphone,Objective C,Nsdate,Nscalendar,我执行以下代码片段: NSCalendar *gregorian = [[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar]; NSDateComponents *comp = [gregorian components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:[NSDate date]]; [comp setDa
NSCalendar *gregorian = [[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *comp = [gregorian components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:[NSDate date]];
[comp setDay:1];
NSDate *firstDayOfMonthDate = [gregorian dateFromComponents:comp];
firstDayOfMonthDate的值为=30-4-2011,但excpeted为1-5-2011,即我想要任何指定日期的月份第一个日期。
但它给了我上个月的最后一天
提前感谢。添加
[gregorian setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
初始化NSCalendar之后
[NSDate date]
将返回UTC时区中的日期,以及自2001年1月1日00:00 GMT起的绝对时间间隔,但NSCalendar将其时区设置为默认时区,该时区可能不是UTC
UTC与UTC“相同”,这是维基百科的一句话:
在临时使用中,当一个
第二点并不重要,格林威治
可以考虑平均时间(GMT)
相当于UTC或UT1。说“GMT”
通常在以下情况下表示UTC或UT1:
用于非正式或非正式场合
上下文。在技术上下文中,使用
避免使用“GMT”;明确的
术语“UTC”或“UT1”是
首选[3]
[NSDate date]的值是多少?我也认为它是时区的东西。但我也尝试设置两个不同的时区值:1。TimeZoneWithabRevision:虽然它可以工作,但如果应用程序在美国运行,它会带来问题。我正在印度(亚洲)2开发代码。systemTimeZone:给出日期为2011年4月30日。您必须使用UTC,请查看我的答案。问题非常类似于:谢谢。它起作用了。但我没有得到2分1。为什么我设置[gregorian setTimeZone:[NSTimeZone systemTimeZone]]时它不起作用;2.在应用中使用NSDate和NSCalendar时应考虑哪些要点,以避免再次遇到此类问题。