![](/img/trans.png)
[英]How to convert string date time format to another format using Swift
[英]Swift : How to convert String to string with time format?
我的字符串值包括格式為“HH:mm” (16:50)的時間
我必須將此值轉換為“hh:mm ”格式(04:50)作為 SWIFT 中的字符串
我試過 NSDateFormatter 喜歡
let timeFormat = NSDateFormatter()
timeFormat.dateFormat = "hh:mm"
var dateFromStr = timeFormat.dateFromString("16:50")
var strFromDate = timeFormat.stringFromDate(dateFromStr)
但它不起作用..請告訴任何解決方案。
您需要 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
斯威夫特 5
let inFormatter = DateFormatter()
inFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX") as Locale
inFormatter.dateFormat = "hh:mm:ssa"
let outFormatter = DateFormatter()
outFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX") as Locale
outFormatter.dateFormat = "hh:mm a"
let inStr = "16:50"
let datess = inFormatter.date(from: inStr)!
let outStr = outFormatter.string(from: datess)
print(outstr)
2020 | 斯威夫特 5.1:
func dateTimeChangeFormat(str stringWithDate: String, inDateFormat: String, outDateFormat: String) -> String {
let inFormatter = DateFormatter()
inFormatter.locale = Locale(identifier: "en_US_POSIX")
inFormatter.dateFormat = inDateFormat
let outFormatter = DateFormatter()
outFormatter.locale = Locale(identifier: "en_US_POSIX")
outFormatter.dateFormat = outDateFormat
let inStr = stringWithDate
let date = inFormatter.date(from: inStr)!
return outFormatter.string(from: date)
}
用法:
let outStr = dateTimeChangeFormat(str: "16:50",
inDateFormat: "HH:mm",
outDateFormat: "hh:mm")
println(outStr) // -> outputs 04:50
我相信你應該在字符串中寫下時間。
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "hh:mm"
var date = dateFormatter.dateFromString("00:00")
var str_from_date = dateFormatter.stringFromDate (date)
這是一篇舊帖子,但我認為值得注意的是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"
可以通過使用一個DateFormatter
來實現。
另外在一個地方添加了一些額外的格式。 希望有人得到幫助。
Xcode 12 - Swift 5.3
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "HH:mm"
var dateFromStr = dateFormatter.date(from: "16:50")!
// Time with date in long format
dateFormatter.dateFormat = "hh:mm:ss a 'on' MMMM dd, yyyy"
var timeInLongFromDate = dateFormatter.string(from: dateFromStr)
print(timeInLongFromDate)
// 04:50:00 PM on January 01, 2000
// Time with customisable format
dateFormatter.dateFormat = "hh:mm:ss a"
var timeFromDate = dateFormatter.string(from: dateFromStr)
print(timeFromDate)
// 04:50:00 PM
// Customisable AP/PM symbols
dateFormatter.amSymbol = "am"
dateFormatter.pmSymbol = "Pm"
dateFormatter.dateFormat = "a"
var amOrPm = dateFormatter.string(from: dateFromStr)
print(amOrPm)
// Pm
func hrs12FormateString(date:String)-> String {
let inFormatter = DateFormatter()
inFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX") as Locale
inFormatter.dateFormat = "HH:mm"
let outFormatter = DateFormatter()
outFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX") as Locale
outFormatter.dateFormat = "hh:mm a"
let inStr = date
let date = inFormatter.date(from: inStr)!
let outStr = outFormatter.string(from: date)
return outStr
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.