タイム ゾーン オフセットを除く文字列内のすべてに対して、次のパターンが機能します。
from_unixtime(unix_timestamp("2013-02-02T04:04:11.240", "yyyy-MM-dd'T'HH:mm:ss.SSS"))
SimpleDateFormat のパターンはこちらです。
追加のパターン XXX は、タイム ゾーン オフセットを処理する必要があります。しかし、このページとこのページで説明したように、X パターンは Java 7 で導入されました。
以前のバージョンの Java を実行している場合 (私のように - 私の Cloudera QuickStart VM は 1.6.0_32 を使用しています)、これを機能させるには追加の操作を行う必要があります。これを行う1つの方法は次のとおりです。
from_unixtime(unix_timestamp(
regexp_replace(
regexp_replace("2013-02-02T04:04:11.240-4:00", "(.*):(.{2})$", "$1$2"),
"(.*)-(.{3})$", "$1-0$2"),
"yyyy-MM-dd'T'HH:mm:ss.SSSZ"))
最も内側の regexp_replace は、タイム ゾーン オフセットからコロン (:) を取り除きます。最も外側の regexp_replace は、必要に応じて、タイム ゾーン オフセットを余分なゼロで埋めます (つまり、-4:00 は、Z パターンに一致する -0400 になります。-400 は Z パターンに一致しないことに注意してください)。