簡體   English   中英

快速從json時間和格式時間獲取數據

[英]Get data from json time and format time in swift

我在網站的json中列出了數據時間的數組,因此我需要將時間從24小時制轉換為12小時,並使用時間與當前時間進行比較

這是我的代碼:

 let task=URLSession.shared.dataTask(with: url!) {(data, response, err) in
        if err != nil{
         print("err")
        }else{
            do{
               let dataT=try JSONSerialization.jsonObject(with: data!, options: JSONSerialization.ReadingOptions.mutableContainers) as? NSDictionary

                if let prayTime = dataT?["times"] as? NSArray  {
                    if let fajerTT = prayTime[0] as? String {         
                      let timeFormat = DateFormatter()
                       timeFormat.dateFormat = "hh:mm"
                        let timeFajer=timeFormat.date(from: fajerTT)
                      print(fajerTT)
                       print("\(timeFajer))")
                   self.fajerT.text=timeFajer
                    }else {print("false")}
                 }

            }catch{print("Error")

                  }


             }
    }



    task.resume()

這來自json

["05:05","06:30","12:56","16:30","19:21","19:21","20:51"]}

如果您想將接收到的數組中的時間與當前時間進行比較,則無需將日期轉換為12小時格式。

獲取日期組件並將其與當前日期進行比較。

基本上,您的日期格式是錯誤的。 由於時間采用24小時制,因此為HH:mm

let timeFormatter = DateFormatter()
timeFormatter.dateFormat = "HH:mm"
let outputFormatter = DateFormatter()
outputFormatter.dateFormat = "hh:mm a"
let calendar = Calendar.current
let now = Date()

let times = ["05:05","06:30","12:56","16:30","19:21","19:21","20:51"]
for time in times {
    let date = timeFormatter.date(from: time)!
    let components = calendar.dateComponents([.hour, .minute], from: date)
    let match = calendar.date(now, matchesComponents: components)
    print(match)
    let output = outputFormatter.string(from: date)
    print(output)
}

而且-與往常一樣-不要在Swift中使用Foundation集合類型( NSArray / NSDictionary ),使用本機類型並且永遠不要傳遞選項.mutableContainers

   if let dataT = try JSONSerialization.jsonObject(with: data!) as? [String:Any],
      let prayTime = dataT["times"] as? [[String:Any]]  {

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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