2017-01-22 20 views
1

Fitbit APIから戻ってきた日付文字列をiOS上のNSDate/Dateオブジェクトに変換する方法がわかりません。Fitbit APIの日付文字列を解析しています

日付文字列は次の形式である:https://dev.fitbit.com/docs/devices/、および各デバイスは、JSONの「lastSyncTime」プロパティで戻ってくる:

2017-01-21T10:39:43.000 

私が使用していますAPIは、ここに記載されています。

私は、日付の値をnilに戻し続けるいくつかの異なる日付形式を試しました。

これらのさまざまな日付形式を無駄にしようとしました。

ここで大きな助けとなるでしょう。ありがとう。

+1

私は時々だけでなく、日付フォーマッタで苦労しています。提案:候補フォーマッターを使用し、それを使用して日付**を文字列に変換し、結果をログに記録します。希望のフォーマットと比較してください。それは、あなたが差異をゼロにするのを助けることができます。 –

答えて

2

このフォーマッタを使用して解析します。

let formatter = DateFormatter() 
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS" 
formatter.date(from: dateString) 

私は、これは

+0

ブーム!それだ!ありがとうございました:) – cgossain

+0

これは、ユーザーのローカルタイムゾーンの日付文字列を解釈します。これは、APIにとって正しいかもしれないし、正しくないかもしれません。 – rmaddy

+0

"2017-01-21T10:39:43.000 "で指定された時刻にタイムゾーン値が含まれているとは思われません。 – Sandeep

1

これは私のために働くことができます願っています:

import Foundation 

let date = "2017-01-21T10:39:43.000" 
let formatter = DateFormatter() 

formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS" 
let formatDate = formatter.date(from: date) 

print(formatDate!) 

出力:2017-01-21 16:39:43 +0000

関連する問題