73

yyyy-MM-dd'T'HH:mm:ss.SSSz 形式の日付を yyyy-mm-dd HH:mm:ss にフォーマットしようとしていますが、これは簡単なはずですが、動作させることができません.

解析する必要がある日付の形式は次のとおり
です。

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSz", Locale.FRANCE);

それでも、2012-10-01T09:45:00.000UTC+00:00 のような出力が得られます。

また、パターンとして「yyyy-MM-dd'T'HH:mm:ss.SSSZ」と「yyyy-MM-ddHH:mm:ss」を使用しようとしました。後者は 2012-10-01T09:45:00 close の形式で日付を返しますが、まだそこにはありません。

T をサブストリング化するのは少し面倒で、理由もなくオーバーヘッドが発生すると考えました。これらの日付をフォーマットする適切な方法は何でしょうか?

説明するために、2012-10-01T09:45:00.000+02:00 を 2012-10-01 09:45:00 に変換したいと思います

乾杯!

4

8 に答える 8

102
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
SimpleDateFormat output = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d = sdf.parse(time);
String formattedTime = output.format(d);

これは機能します。1 つは入力用、もう 1 つは出力用の 2 つの SimpleDateFormats を使用する必要がありますが、必要なものだけが得られます。

于 2013-03-31T15:01:49.203 に答える
35
于 2016-03-17T10:44:26.167 に答える
3

2016-03-09T04:50:00-0800 などの JSON 応答から受信した日付文字列を yyyy-MM-dd にフォーマットしようとしていました。これが私が試したもので、うまくいき、フォーマットされた日付文字列をカレンダーウィジェットに割り当てるのに役立ちました。

String DATE_FORMAT_I = "yyyy-MM-dd'T'HH:mm:ss";
String DATE_FORMAT_O = "yyyy-MM-dd";


SimpleDateFormat formatInput = new SimpleDateFormat(DATE_FORMAT_I);
SimpleDateFormat formatOutput = new SimpleDateFormat(DATE_FORMAT_O);

Date date = formatInput.parse(member.getString("date"));
String dateString = formatOutput.format(date);

これはうまくいきました。ありがとう。

于 2016-03-17T07:22:26.387 に答える