Swift:如何使用时间格式将String转换为字符串

时间:2015-02-20 08:47:15

标签: ios swift

我的字符串值包含时间格式为" HH:mm" (16:50)

我必须将此值转换为" hh:mm "格式(04:50)作为SWIFT中的字符串

我尝试过NSDateFormatter

let time_format = NSDateFormatter() 
time_format.dateFormat = "hh:mm"
var date_from_str = time_format.dateFromString("my string time value")
var str_from_date = time_format.stringFromDate (date_from_str) 

但它不起作用.. 请告诉任何解决方案。

5 个答案:

答案 0 :(得分:11)

您需要2 NSDateFormatter s,一个dateFromString,一个stringFromDate

let inFormatter = NSDateFormatter()
inFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
inFormatter.dateFormat = "HH:mm"

let outFormatter = NSDateFormatter()
outFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
outFormatter.dateFormat = "hh:mm"

let inStr = "16:50"
let date = inFormatter.dateFromString(inStr)!
let outStr = outFormatter.stringFromDate(date)
println(outStr) // -> outputs 04:50

答案 1 :(得分:1)

我相信你应该把时间写在字符串里面。

    let dateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = "hh:mm"
    var date = dateFormatter.dateFromString("00:00")
    var str_from_date = dateFormatter.stringFromDate (date)

答案 2 :(得分:0)

2020年| SWIFT 5.1:

let inFormatter = DateFormatter()
inFormatter.locale = Locale(identifier: "en_US_POSIX")
inFormatter.dateFormat = "HH:mm"

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

let inStr = "16:50"
let date = inFormatter.date(from: inStr)!
let outStr = outFormatter.string(from: date)
println(outStr) // -> outputs 04:50

答案 3 :(得分:0)

这是一篇过时的文章,但我认为值得注意的是isLenient允许您使用1个格式化程序而不是2个。

func normalizeTimeString(_ original: String) -> String? {
    let formatter = DateFormatter()
    formatter.isLenient = true
    formatter.dateFormat = "hh:mm"

    guard let date = formatter.date(from: original) else { return nil }
    let corrected = formatter.string(from: date)
    return corrected
}

normalizeTimeString("16:50") // Returns "04:50"

答案 4 :(得分:0)

可以使用一个import nctoolkit as nc data = nc.open_data("infile.nc") data.to_nc("outfile.nc") 来实现。

Plus在一个地方添加了一些额外的格式。希望有人得到帮助。

Xcode 12-Swift 5.3

DateFormatter