簡體   English   中英

DateFormatter不起作用Swift 3

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM