2012-03-10 9 views
0

RC3339の時刻形式をMM-dd-yyyy hh:mm aに変換しようとしていますが、sampleDateにnull値が表示されています。日付を解析できませんでした。

timestamp = rcobj.getString("timestamp"); 
SimpleDateFormat sdf = new SimpleDateFormat(
    "yyyy-MM-dd'T'HH:mm:ss+SSSZ", Locale.US); 
Date sampleDate = sdf.parse(timestamp, new ParsePosition(0)); 
sdf = new SimpleDateFormat("MM-dd-yyyy hh:mm a", Locale.US); 
if (timestamp != null) { 
    timestamp = sdf.format(sampleDate); 
} 
+0

'timestamp'の値は何ですか?最初にチェックしなくても、nullであれば解析する理由は何ですか? (また、これはJavaであると仮定していますが、そのようにタグ付けすると役立つでしょう...) –

答えて

0

timestampが無効な日付である場合は、parse methodParseExceptionをスローし、それはそれではありません。

nullの場合、parse()NullPointerExceptionをスローします。

rcobj.getString("timestamp")nullを返すことをほぼ保証することができます。


BTW parse(timestamp, new ParsePosition(0))は、単にparse(timestamp)に相当します。

+0

タイムスタンプは次のような値を持っていました:2012-01-19T18:23:43 + 0000.しかし、 IN SimpleDateFormatという文字列のパターンを変更することで修正されました。これは、yyyy-MM-dd'T'HH:mm:ss + SSSZの代わりに使用されました。 :ssそれは私のタイムスタンプの文字列とオフセットのパターンに一致しません。パターンを変更したら、それはうまく動作します。私を助けてくれてありがとう。 – user907998