2017-01-20 4 views
0

私は年、月、日をJavaのStringから取得する必要がある作業をしています。文字列は次のようになります。20170119T163048JavaのString形式から年、月、日を取得する方法

ここで、2017は年、01は月、19は日、16:30:48は時間です。

は、私は以下のようなコードを実装:

public void convertStringToDate (String string) { 
    String dateInString = ""; 
    SimpleDateFormat formatter = new SimpleDateFormat(); 
    Date date = formatter.parse("20170119T163048"); 
    System.out.println(date); 
    } 

しかし、それは動作しませんように思えます。見て回って、私は実際には非常に多くの似たような答えを見つけましたが、それらのどれも本当に私のために働いていません...

+6

yyyyMMdd'T'HHmmSS' 'の線に沿ってフォーマットしてみてください/ 18119665/geting-duration-of-2-times/18120233#18120233) – MadProgrammer

+0

これは今まで私のために働いています。ありがとう。 –

+0

より一般的なdupe:[Java文字列から日付変換](// stackoverflow.com/q/4216745) – Tom

答えて

5

あなたは常にドキュメントを参照してください。 [例]について(http://stackoverflow.com/questions - 新しい日付/時刻のAPIを利用して、より良いまだか - Simple Date Format Documentation

public static void main(String[] args) throws Exception{ 
     SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd'T'HHmmss"); 
     Date date = formatter.parse("20170119T163048"); 
     System.out.println(date.toString()); 
    } 
+0

ああ、ありがとう、ありがとう。しかし、私は 'T'が何であるか知ることができますか?私はそれが私を混乱させる主な部分だと思う。 –

+0

'T'は時刻形式の文字列の時刻を示します。公式のドキュメントを常に読む価値があります - https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html –

+0

実際には、 'T'という形式の文脈では、それはリテラルを意味します。フォーマットのこの時点で「T」を見つけることを期待する。 ISOフォーマットの場合、 'T'は時間区切り文字です。新しい日付/時刻APIには、すぐに利用できるISO形式がいくつか用意されています; – MadProgrammer

関連する問題