2017-08-16 05:08:54 使用 swift 3 将字符串转换为日期“17-8 月 13 日:30”

2017-08-16 05:08:54 Convert String to in Date "17-Aug 13 : 30" using swift 3

我正在尝试将 dateString "2017-08-17 12:08:00" 转换为这种格式的 "17-Aug 17 : 38"。

func timeFromString(dateString : String)  {

    let inFormatter = DateFormatter()

    inFormatter.locale = Locale(identifier: "en_US_POSIX")
    //NSLocale(localeIdentifier: "en_US_POSIX")

    inFormatter.dateFormat = "yyyy-MM-dd HH:mm"

    let outFormatter = DateFormatter()
    outFormatter.locale = Locale(identifier: "en_US_POSIX")
    outFormatter.dateFormat = "dd-MMM hh:mm"

    let date = inFormatter.date(from: dateString)!
    let outStr = outFormatter.string(from: date)

}

我也想补充5:30。

因为日期格式化程序在输入中是 HH:mm?所以我没有得到准确的输出?如果是,那为什么?

输入为yyyy-MM-dd hh:mm:ss,输出为dd-MMM HH:mm .所以喜欢

    let outFormatter = DateFormatter()
    // set the input format
    outFormatter.dateFormat = "yyyy-MM-dd hh:mm:ss"
    // convert your string to date
    let date = outFormatter.date(from: "2017-08-16 05:08:54")!
    // set the output format 
     outFormatter.dateFormat = "dd-MMM HH : mm"
    // convert your date to expected output string
    let outStr = outFormatter.string(from: date)
    print(outStr) // -> outputs 16-Aug 05 : 08  

输入格式应为 yyyy-MM-dd hh:mm:ss,输出格式应为 - dd-MMM HH:mm。您始终可以在 NSDateFromatter.com

中检查 iOS 的格式

确保您的日期格式正确(根据您输入的字符串)。

试试这个:

    let inFormatter = DateFormatter()
    inFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
    let date = inFormatter.date(from: "2017-08-16 05:08:54")!
    inFormatter.dateFormat = "dd-MMM HH:mm"
    let outStr = inFormatter.string(from: date)
    print(outStr) // -> 16-Aug 05:08
 let inFormatter = DateFormatter()

    inFormatter.locale = Locale(identifier: "en_US_POSIX")

    inFormatter.dateFormat = "yyyy-MM-dd HH:mm"

    let outFormatter = DateFormatter()
    outFormatter.locale = Locale(identifier: "en_US_POSIX")
    outFormatter.dateFormat = "dd-MMM HH:mm"

    let date = inFormatter.date(from: "2017-08-16 05:08")!
    let outStr = outFormatter.string(from: date)
    print(outStr) // 16-Aug 05:08