2016-07-18 12 views
0

こんにちは誰も助けてくださいできますか?私は、日付と時刻の文字列をフォーマットしようとしています。 現在は "20160112T110000Z"のようになっており、 "2016-01-12T11:00:00Z"にする必要があります日付/時刻文字列を書式設定する方法は? (Java)

サードパーティの定期刊行物ライブラリから特殊文字のない文字列が返されます。私はCalendarオブジェクトにそれを解析する前に、特殊文字を持つように変換する必要があります。

誰でも助けてください。

私がこれまでのように見えてきたコード:これはうまく動作しません。しかし

final String TIMEFORMAT = "yyyy-MM-dd'T'HH:mm:ss'Z'"; 
String string = "20160112T110000Z"; 
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); 
    Date date = format.parse(string); 
    System.out.println(date); 

任意の提案は、あなたがソースにマッチ形式で文字列を読み込む必要が

+0

サンプルコードから、あなたの出力は何ですか? – Jokab

+0

なぜ最初に変換する必要がありますか?それを解析するために別のSDFを使用すると何が問題になりますか? – Zircon

+1

'string'の正しいフォーマットで日付を解析し、それを' SimpleDateFormat format'でターゲットフォーマットにフォーマットするだけです。 – Tom

答えて

2

を高く評価され、これはあなたに正しいDateを与えます。

その後、単にあなたが望む形式でそれを書く:

String string = "20160112T110000Z"; 

    String originalStringFormat = "yyyyMMdd'T'HHmmss'Z'"; 
    String desiredStringFormat = "yyyy-MM-dd'T'HH:mm:ss'Z'"; 

    SimpleDateFormat readingFormat = new SimpleDateFormat(originalStringFormat); 
    SimpleDateFormat outputFormat = new SimpleDateFormat(desiredStringFormat); 

    try { 
     Date date = readingFormat.parse(string); 
     System.out.println(outputFormat.format(date)); 
    } catch (ParseException e) { 

     e.printStackTrace(); 
    } 
+1

ありがとうございます。私は今、論理を理解しています。とても感謝している。 –

関連する問題