将date formatter转换为另一个日期格式化程序

时间:2016-08-26 06:04:42

标签: ios swift date

我的字符串中的日期如下:10/07/2016

我想像这样转换:10 July 2016

我喜欢这个:

struct NSDateFormatterType {
    static let API_FORMAT = "dd/mm/yyyy"
    static let DISPLAY_FORMAT = "dd MMMM yyyy"
}

extension NSDate {
  class func convertDateDisplayFormat(dateString: String) -> String {
    let dateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = NSDateFormatterType.API_FORMAT
    if let date = dateFormatter.dateFromString(dateString) {
        dateFormatter.dateFormat = NSDateFormatterType.DISPLAY_FORMAT
        return dateFormatter.stringFromDate(date)
    } else {
        return dateString
    }
}

但它给了我:10 January 2016

我在这里做错了什么?

2 个答案:

答案 0 :(得分:6)

您的API_FORMAT dd/mm/yyyy格式错误,mm用于Minute您需要MM Month。所以它必须像dd/MM/yyyy

答案 1 :(得分:1)

Swift 3.0 中的相同转化如下。

var dateString = "26/08/2016"
let dateFormatter = DateFormatter()

// *** Format to read string date ***
dateFormatter.dateFormat = "dd/MM/yyyy"
if let date = dateFormatter.date(from: dateString) 
{
    // *** set output date format ***
    dateFormatter.dateFormat = "dd MMMM yyyy"
    print("formatted date \(dateFormatter.string(from: date))")
} else {
    print("can't convert \(dateString)")