为什么我的 JTAppleCalendar 提前 1 天?

Lou*_*iOS 2 swift jtapplecalendar

我正在使用 JTAppleCalendar,每个月的日期都比应有的提前 1 天。这是我的配置代码:

func configureCalendar(_ calendar: JTAppleCalendarView) -> ConfigurationParameters {

    formatter.dateFormat = "yyyy MM dd"
    formatter.timeZone = Calendar.current.timeZone
    formatter.locale = Calendar.current.locale

    let currentYear = Calendar.current.component(.year, from: Date())
    let stringCurrentYear = String(currentYear)
    let nextYear = currentYear + 1
    let stringNextYear = String(nextYear)
    let currentMonth = Calendar.current.component(.month, from: Date())
    let stringCurrentMonth = String(currentMonth)

    let startDate = formatter.date(from: "\(stringCurrentYear) \(stringCurrentMonth) 01")!
    let endDate = formatter.date(from: "\(stringNextYear) 12 31")!

    let parameters = ConfigurationParameters(startDate: startDate, endDate: endDate)

    return parameters

}
Run Code Online (Sandbox Code Playgroud)

这是当前的输出:

在此输入图像描述

2018 年 1 月 1 日应该是星期一,但现在却显示为星期二。

Lou*_*iOS 5

找到了我自己的答案。我使用以下代码来修复它:

    let parameters = ConfigurationParameters(
        startDate: startDate,
        endDate: endDate,
        numberOfRows: 6,
        calendar: calendar,
        generateOutDates: .tillEndOfRow,
        firstDayOfWeek: .monday
    )

    return parameters
Run Code Online (Sandbox Code Playgroud)

我认为问题在于默认情况下一周的第一天是星期日。于是把它设置为星期一就解决了这个问题。