例、文字列値は次のとおりです。
15/08/2013 15:30 GMT+10:00
15/08/2013
Javaで上記の文字列を(時間部分を削除して日付のみを保持する)ようにフォーマットしたい。
このフォーマットを行うにはどうすればよいですか?
時間部分を削除し、日付のみを保持
String dateString= "15/08/2013 15:30 GMT+10:00";
String result = dateString.split(" ")[0];
それはあなたに与える 15/08/2013
フォーマットする必要はないと思います。
現在は 2018 年であり、Java 8+ (およびThreeTen Backport ) に日付/時刻 API があるため、次のようなことができます...
String text = "15/08/2013 15:30 GMT+10:00";
LocalDateTime ldt = LocalDateTime.parse(text, DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm z", Locale.ENGLISH));
System.out.println(ldt);
// In case you just want to do some "date" manipulation, without the time component
LocalDate ld = ldt.toLocalDate();
// Will produce "2013-08-15"
//String format = ldt.format(DateTimeFormatter.ISO_LOCAL_DATE);
String format = ldt.format(DateTimeFormatter.ofPattern("dd/MM/yyyy"));
System.out.println(format);
String
1つのアプローチは、日付をDate
オブジェクトに解析し、要件に従って単純にフォーマットすることです
String text = "15/08/2013 15:30 GMT+10:00";
SimpleDateFormat inFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm z");
Date date = inFormat.parse(text);
System.out.println(date);
SimpleDateFormat outFormat = new SimpleDateFormat("dd/MM/yyyy");
String formatted = outFormat.format(date);
System.out.println(formatted);
Date
これには、他の目的で必要な場合に備えて、日付/時刻情報を保持できるという優れた利点があります ;)
詳細については、を参照SimpleDateFormat
してください
これが文字列に含ま15/08/2013 15:30 GMT+10:00
れているだけで、文字列の最初の 10 文字である日付部分だけが必要な場合は、最初の 10 文字を取得します。日付として解析してフォーマットする必要はありません。
String input = "15/08/2013 15:30 GMT+10:00";
String result = input.substring(0, 10);
DateFormat クラスを確認してください。 http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
パーサーを使用して日付を解析し、別のパターンで目的の形式を書き出すことができるはずです
つまり、インバウンドの場合は new SimpleDateFormat("dd/MM/yyyy hh:mm z")
更新された形式の new SimpleDateFormat("dd/MM/yyyy")
SimpleDateFormat クラスを使用してみてください: http://docs.oracle.com/javase/7/docs/api/java/text/DateFormat.html
DateFormat formatter = new SimpleDateFormat(format);
Date date = (Date) formatter.parse(dateStr);