前人未踏の領域へ アプリ開発編

Android, iOSアプリ開発に関する調査メモ置き場。ほとんどAndroid。はてなダイアリーから移行したため古い記事にはアプリ以外も含まれます。

SimpleDateFormatのISO-8601対応について

JavaのSimpleDataFormatのフォーマットパラメータにタイムゾーン指定を追加すると +0900 が追加される
ISO8601では+09:00も有効である。なのでSimpleDataFormatではJava7からZに加えてXを定義している

String a = "yyyy-MM-dd'T'HH:mm:ssZ"; //+0900になる
String b = "yyyy-MM-dd'T'HH:mm:ssX"; //+09になる
String c = "yyyy-MM-dd'T'HH:mm:ssXXX"; //+09:00になる

が、AndroidはベースがJava6なのでXを使うとフォーマットエラーになる。
その代わりという訳でもないが +0900だろうが+09:00だろうがどちらもZでパースしてくれる
(Java7だとパースエラーになる)

テストコードを書く時にハマったのでメモ。