2017-05-09 34 views
0

我试图日期字符串“06/18”(MM/YY)转换为元件月份和YY/MM dateString最新组件

let dateString = "06/18" 

let dateFormatter = DateFormatter() 
dateFormatter.dateFormat = "MM/YY" 
if let date = dateFormatter.date(from: dateString) { 
    let calendar = Calendar(identifier: .gregorian) 
    let components = calendar.dateComponents([.month, .year], from: date) 
    // contains year: 2017 month: 12 isLeapMonth: false 
} 

为什么是dateComponents 2017年和12个月,而不是2018年和12年?

这是一个时区问题?

有没有干净的方法来获得2018年和12?

+2

即使在苹果文档:*“一个常见的错误是使用YYYY。” * –

+0

考虑总是使用,而不是'YY' –

回答

3

dateFormat更改为MM/yyMM/YY并且您都准备好了。

let dateFormatter = DateFormatter() 
dateFormatter.dateFormat = "MM/yy" 
if let date = dateFormatter.date(from: dateString) { 

} 
+0

'yy' ......好吧,现在我觉得自己很蠢;) – MarkHim

+1

@MarkHim它发生队友:) –