所以我有一個字串格式的時間 HH:mm:ss(例如 08:30:00)。我希望能夠將其轉換為上午 8:30。
通常情況下,如果我有年份、月份、日期會很容易,所以進行轉換會很簡單,但在這種情況下我不需要它。
我最初的計劃是獲取當前的 Date() 然后為其分配時間,然后將其轉換為新格式,H:mm a但我無法成功地做到這一點。這意味著我只能將其轉換為具有 2000 年 1 月 1 日且時間設定為 UTC 的 Date 物件。
這是我想太多了嗎?有沒有更簡單的方法而不進行任何轉換?我只想能夠在H:mm a不更改任何時區的情況下以格式顯示時間。
uj5u.com熱心網友回復:
您需要創建一個Date具有指定時間值的。為此,我會簡單地創建一個新實體,Date然后使用Calendar將時間設定為所需的值
var date = Date()
let cal = Calendar.current
// Please note, this returns an optional, you will need to deal
// with, for demonstration purposes, I've forced unwrapped it
date = cal.date(bySettingHour: 8, minute: 30, second: 0, of: date)!
從那里,您可以使用 aDateFormatter將結果格式化為String
let formatter = DateFormatter()
formatter.dateFormat = "hh:mm a"
formatter.string(from: date)
現在,如果您從一個String值 (of HH:mm:ss) 開始,您實際上可以使用 aDateFormatter來決議它,例如...
let value = "08:30:00"
let parser = DateFormatter()
parser.dateFormat = "HH:mm:ss"
// Again, this is forced unwrapped for demonstration purposes
let parsedDate = parser.date(from: value)!
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/410741.html
標籤:
上一篇:ForEach行顯示
