1. ホーム
  2. java

[解決済み】Joda-TimeのDateTimeをmm/dd/yyyyのみにフォーマットする方法は?

2022-04-11 02:46:45

質問

文字列 " があります。 11/15/2013 08:00:00 のようにフォーマットしたい。 11/15/2013 というのはどういう意味ですか? DateTimeFormatter のパターンになります。

いろいろ試したり、ググったりしましたが、まだ正しいパターンが見つかりません。

edit: 私が探しているのは ジョダタイム DateTimeFormatter Java の SimpleDateFormat ではありません。

解決方法は?

JAVA SE 8では、新しいjava.time (JSR-310)パッケージが導入されたことに注意してください。これはJoda timeを置き換えるもので、Jodaユーザーは移行することをお勧めします。JAVA SE ≥ 8 の日付と時刻のフォーマット方法については、以下を参照してください。

ヨーダ時間

を作成します。 DateTimeFormatter を使って DateTimeFormat.forPattern(String)

Joda timeを使うと、このようになります。

String dateTime = "11/15/2013 08:00:00";
// Format for input
DateTimeFormatter dtf = DateTimeFormat.forPattern("MM/dd/yyyy HH:mm:ss");
// Parsing the date
DateTime jodatime = dtf.parseDateTime(dateTime);
// Format for output
DateTimeFormatter dtfOut = DateTimeFormat.forPattern("MM/dd/yyyy");
// Printing the date
System.out.println(dtfOut.print(jodatime));


標準的なJava ≥ 8

Java 8 では 新しい日付と時刻のライブラリ そのため、日付や時刻を簡単に扱うことができます。標準のJavaバージョン8以降を使う場合は DateTimeFormatter . にタイムゾーンがないため、そのようなことはありません。 String , a java.time.LocalDateTime または ローカル日付 そうでない場合は、時間分割された品種 ゾーンドデイトタイム ゾーニング日付 が使えた。

// Format for input
DateTimeFormatter inputFormat = DateTimeFormatter.ofPattern("MM/dd/yyyy HH:mm:ss");
// Parsing the date
LocalDate date = LocalDate.parse(dateTime, inputFormat);
// Format for output
DateTimeFormatter outputFormat = DateTimeFormatter.ofPattern("MM/dd/yyyy");
// Printing the date
System.out.println(date.format(outputFormat));


標準的なJava < 8

Java 8以前は、a SimpleDateFormat java.util.Date(ジャバユーティリティ・デイト

String dateTime = "11/15/2013 08:00:00";
// Format for input
SimpleDateFormat dateParser = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
// Parsing the date
Date date7 = dateParser.parse(dateTime);
// Format for output
SimpleDateFormat dateFormatter = new SimpleDateFormat("MM/dd/yyyy");
// Printing the date
System.out.println(dateFormatter.format(date7));