2017-08-29 2 views
0

にJSON時間とフォーマット時間からデータを取得ので、私は、現在の時間と比較するために12時間と使用時間に24時間システムからの時間を変換する必要がある、私はウェブサイトからJSONでデータの時間のリストの配列を持って迅速

この私のコード: - JSONから

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() 

この

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

可能な重複オプションを渡すことはありません[ xcode swift am/pm time to 24 hour format](https://stackoverflow.com/questions/29321947/xcode-swift-am-pm-time-to-24-hour-format) – BennX

+0

さらに、https:///stackoverflow.com/q/36096533/1804251 – BennX

+0

これを確認してください:https://stackoverflow.com/questions/34360941/convert-an-array-of-times-from-24hr-to-12-hr-in-swift –

答えて

2

あなたは、現在の時刻と受信アレーで時間を比較したい場合は、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) 
} 

そして

- いつものように - スウィフトに財団のコレクション型( NSArray/ NSDictionary)を使用していない、ネイティブ型を使用しての .mutableContainers

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

あなたの答えをありがとうが、私はする必要があります私はユーザーのためにuiを入れて使用する必要があるので12時間に変換する –

+0

私は答えを更新しました。 – vadian

関連する問題