【问题标题】:iOS: create a NSDate object for each month between two specific datesiOS:为两个特定日期之间的每个月创建一个 NSDate 对象
【发布时间】:2014-05-14 14:47:59
【问题描述】:

所以我希望在两个日期之间为每个月创建一个对象..

开始:01/08/2012

结束:2012 年 2 月 10 日

将是两个月,所以我想列出:

2012 年 1 月 9 日 2012 年 1 月 10 日

..我准备好为每个推送到 Parse(.com) 的人创建一个 NSDate..

这是我到目前为止所得到的:

    NSString *start = @"2010-09-15";
    NSString *end = @"2011-07-15";

    NSDateFormatter *f = [[NSDateFormatter alloc] init];
    [f setDateFormat:@"yyyy-MM-dd"];
    NSDate *startDate = [f dateFromString:start];
    NSDate *endDate = [f dateFromString:end];

    NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
    NSDateComponents *components = [gregorianCalendar components:NSMonthCalendarUnit
                                                        fromDate:startDate
                                                          toDate:endDate
                                                         options:0];

    int i=0;

    for (i = 0; i < [components month]; i++)
    {

        NSLog(@"%i", i+1);

        NSDateFormatter *df = [NSDateFormatter new];
        // change locale if the standard is not what you want
        NSArray *monthNames = [df standaloneMonthSymbols];
        NSString *monthName = [monthNames objectAtIndex:(i)];

        NSLog(@"Month name: %@", monthName);

    }

感谢您的帮助!

【问题讨论】:

  • 你有 NSDateComponents。你还想要什么???
  • 请详细说明您遇到的障碍。

标签: ios objective-c parsing nsdate recurring


【解决方案1】:

你的想法是对的。您有代码将开始日期字符串转换为 NSDate,并计算出两个日期之间的月数。想必您要发送到 parse.com 的是相同格式的日期字符串,对吧?

让我们将您的开始日期和结束日期之间的月数称为monthCount。

在这种情况下,在您的 for 循环中,您应该使用 NSCalendar 方法 dateByAddingComponents:toDate:options: 将 0 -> monthCount 添加到日期,然后使用日期格式化程序的 stringFromDate 方法将该日期转换为日期字符串。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-18
    • 1970-01-01
    • 1970-01-01
    • 2021-03-14
    • 2018-04-20
    • 1970-01-01
    • 2014-10-12
    • 2012-05-30
    相关资源
    最近更新 更多