1
NSDateFormatter
で、オフセット付きのISO-8601の日付+時間値を渡すと、オフセットが読み込まれ、出力がUTC値に調整されます:SwiftのISO-8601文字列からのオフセット値の抽出
// Setup
let formatter = NSDateFormatter()
formatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZZ"
// Test
let input = "2016-04-16 04:12:00-0800"
let output = formatter.dateFromString(input)
let outputStr = formatter.stringFromDate(output)
print(outputStr) // "2016-04-15 08:12:00-0000"
これまでのところ、とても良いです。
しかし、私はそのオフセット値で自分自身を取得したい。私のアプリケーションは、日付時刻のオフセット情報を保持するWebサービスのクライアントなので、同じことをする必要があります(盲目的にWebサービスにoutputStr
を返すと、オフセット情報が失われてデータベースがオフセット日時が収集されたときだった。
NSDateFormatter
日付だけを出力するためのタイムゾーン情報を受け入れているようだ、私は入力文字列のうち、数値オフセットを取得するための方法はありません。
この例では、指定された文字列の日付+時刻値からタイムゾーンオフセットを取得する方法を示していません。 – Dai
??入力文字列が特定の時間値を表している場合、SAME VALUEは異なる時間オフセットを持つ文字列として表すことができます。 – user3441734
あなたはちょうど入力文字列を解析し、その文字列から-0800を取りますか?またはそれが表す時間が必要ですか?ちなみに – user3441734