2016-03-30 16 views
-1

データベースから日付を12時間形式に変換したいのですが、最初はこの形式のものが2015-06-11T28:28:57.000Zの24時間形式です。ここでは、この時刻形式(28:25:57)は翌日(すなわち、2015-06-12T04:28:57)と思われます。データベースからの日付を使用してjavaで24時間の時間を12時間形式に変換する方法

私は次のように試してみました:

String date = "2015-06-11T28:28:57.000Z"; 
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss a"); 
Date date = formatter.parse(date); 

が、私は解析できない日付のようなエラーが発生しました。

+0

は、データベース内の文字列として格納されている日付のですか?なぜそれを日付/時刻型として保存しないのですか? – assylias

+0

例外はどこにスローされますか? stack straceはありますか? –

+4

dbに '2015-06-11T28:28:57.000Z'のような日付がある場合は、エラー – Antoniossss

答えて

-2

HH:MM(時および分)部分文字列を「キャッチ」するために日付文字列を解析します。

次に、このようにしてください:日付フォーマッタ文字列が間違っていたConverting 24hour time to 12hour time?

+0

これは新しい回答ではなく、重複としてマークする必要があります。 – pczeus

+0

しないでください。日付を適切に解析し、日付を12時間形式でフォーマットします。有効な日付でない場合は、エラーを発生させてデータを修正してください。 – atamanroman

+1

私が間違っていないなら、重複した評判、不十分な評判として質問にフラグを付けることはできません。 – ferminx360

0

を、これを試してみてください:

String dateStr = "2015-06-11T28:28:57.000Z"; 
    SimpleDateFormat sdfInput = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); 
    Date date = sdfInput.parse(dateStr); 
    System.out.println("Date:"+date); //Fri Jun 12 04:28:57 IST 2015 

    // to get 12 hour date formate date-string from provided date 
    SimpleDateFormat sdfOutput = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS "); 
    String dateStr2 = sdfOutput.format(date); 
    System.out.println("dateStr2:" + dateStr2); //2015-06-12 04:28:57.000 
関連する問題