Swift - NSDate在进入组件之后总会给出第二天的日期

时间:2016-05-26 07:47:38

标签: ios iphone swift nsdate

我通过在当前日期添加天数来生成7个日期。我在数组中添加所有日期。 现在,当我选择任何日期时,它会拉出正确的日期。然后我创建该日期的组件。现在,当我打印组件时,它会将日期(日期部分)显示为下一天的日期。 因此,如果选择27-05-2016,然后获取其组件,当我检查component.day时,它给我28而不是27。

以下是我生成日期的代码:

    let cal = NSCalendar.currentCalendar()
    // start with today
    let selectedDate = cal.startOfDayForDate(NSDate())

 for index in 1...7 {

        dateArray.addObject(selectedDate.dateByAddingTimeInterval(Double(index)*24*60*60))

        print(dateArray.objectAtIndex(index-1))

    }

以下是我从上面的数组中选择日期并获取其组件的代码:

 if currentIndexPosition>=0 {

        selectedDate = dateArray.objectAtIndex(currentIndexPosition) as? NSDate
    }
    else
    {
        selectedDate = dateArray.objectAtIndex(0) as? NSDate
    }

    let cal = NSCalendar.currentCalendar()
    let components = cal.components([.Day , .Month, .Year, .Hour,.Minute ], fromDate: selectedDate!)

现在,当我检查组件时,日期与我从数组中选择的日期不同。它比选定日期多一个。

This is what I selected from date array But when I check its components, I get incorrect date

如果我遗漏了任何内容或者您需要任何其他信息,请告诉我。

由于

0 个答案:

没有答案