我的字符串值包含时间格式为" 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)
但它不起作用.. 请告诉任何解决方案。
答案 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