Swift帮助从将来的日期中提取月份值

时间:2019-06-28 20:16:16

标签: swift date

我正在尝试从下个月的日期计算月份(和年份)值。我已经按照指示说明了如何计算下个月的日期,但是我只需要月份值即可。

我曾短暂尝试过使用DateFormatter,但这超出了我对日期的了解。

let calendar = Calendar.current

let rightNow = Date()

let monthOfYear = calendar.component(.month, from: rightNow)

let nextMonthOfYear = calendar.date(byAdding: .month, value: 1, to: rightNow)

如果我们在六月,我希望下个月的月份值将收到7。

1 个答案:

答案 0 :(得分:2)

您可以从今天的日期中获取年和月的组成部分,在月份值中添加一个,从中创建一个新日期,然后提取其月份值:

.transform(transformer, e -> e.advice(myExpressionEvaluatingRequestHandlerAdvice())

extension Date {
    var year: Int {
         return Calendar.current.component(.year, from: self)
    }
    var month: Int {
        return Calendar.current.component(.month, from: self)
    }
    var nextMonth: Date {
        return DateComponents(calendar: .current, year: year, month: month+1).date!
    }
}

或者简单地

let now = Date()                     // "28 Jun 2019 17:27"
let nextMonthDate = now.nextMonth    // "1 Jul 2019 00:00"
let nextMonth = nextMonthDate.month  // 7