![](/img/trans.png)
[英]Swift DateFormatter doesn't convert date according to preset Dateformat
[英]DateFormatter doesn't work Swift 3
我正在嘗試將此日期“ 07:05:45 PM”轉換為“ 19:05:45”,此代碼不起作用,在關於日期的其他問題中,我沒有找到解決方案,代碼:
Import Foundation
let string = "07:05:45 PM"
let dateFormatter = DateFormatter ()
dateFormatter.locale = Locale (identifier: "en_US_POSIX")
dateFormatter.dateFormat = "hh:mm a"
let date = dateFormatter.date (from: string)
print (date)
我試過了
dateFormatter.dateFormat = "hh:mm:ss"
dateFormatter.dateFormat = "hh:mm:ss a"
dateFormatter.dateFormat = "hh:mm"
我刪除了“ PM”並嘗試:
dateFormatter.dateFormat = "hh:mm"
dateFormatter.dateFormat = "hh:mm:ss" // that code is the only who worked, but doesn't solves the format problem
您需要使用在末尾使用“ a”的DateFormatter進行閱讀,然后不僅要使用print(date)
,還需要使用另一種使用24小時時鍾格式(“ HH”)的DateFormatter而且沒有AM / PM。
您應該這樣做:
let givenString = "07:05:45 PM"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "hh:mm:ss a"
if let date = dateFormatter.date (from: givenString) {
dateFormatter.dateFormat = "HH:mm:ss"
let desiredFormattedString = dateFormatter.string(from: date) // "19:05:45"
}
簡而言之,您指定的日期格式為“ hh:mm:ss a” ,所需的日期格式為“ HH:mm:ss” 。 通過設置適當的格式(使用dateFormatter
), desiredFormattedString
字符串應包含所需的格式化日期。
注意,用來獲取24小時制約定的格式,你應該讓時間為HH
,-obviously- hh
代表12小時制的約定。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.