web-dev-qa-db-ja.com

DateTimeFormatterを使用したjava.util.dateからStringへ

を使用してJava.util.DateStringに変換するにはどうすればよいですか

 DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss")

取得したDateオブジェクトが渡されます

DateTime now = new DateTime(date);
12
Cork Kochi

Java 8)を使用している場合は、最初にJava.util.Dateを使用しないでください(制御できないライブラリからDateオブジェクトを受け取った場合を除きます) )。

いずれの場合も、次を使用してDateJava.time.Instantに変換できます。

Date date = ...;
Instant instant = date.toInstant();

タイムゾーン情報なしで日付と時刻のみに関心があるため(すべてがUTCであると想定しています)、そのインスタントをLocalDateTimeオブジェクトに変換できます。

LocalDateTime ldt = instant.atOffset(ZoneOffset.UTC).toLocalDateTime();

最後に、次の方法で印刷できます。

DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss");
System.out.println(ldt.format(fmt));

または、事前定義されたフォーマッタ DateTimeFormatter.ISO_LOCAL_DATE_TIME を使用します。

System.out.println(ldt.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME));

フォーマッタを提供しない場合、 ldt.toString を呼び出すと、標準の ISO 8601 形式(ミリ秒を含む)で出力が得られることに注意してください。

18
assylias
DateTime dt = new DateTime(date);
DateTimeFormatter dtf = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss");
dt.toString(dtf)
1
Cork Kochi

フォーマッタクラスを使用できます。

final DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss")
        .withZone(DateTimeZone.UTC);

System.out.println(DateTime.now().toString(formatter));
1
Archmede
DateTimeFormatterOBJECT=DateTimeFormatter.ofPattern("DD/MMM/YYYY HH//MM/SS");

String MyDateAndTime= LocalDate.now().format(DateTimeFormatterOBJECT);
0
RANA DINESH

joda API:ergoを使用していると想定しているため、DateTimeFormatterはorg.joda.time.format.DateTimeFormatterから来ています。

 String dateTime = "02-13-2017 18:20:30";
// Format for input
DateTimeFormatter dtf = DateTimeFormat.forPattern("MM-dd-yyyy HH:mm:ss");
// Parsing the date
DateTime jodatime = dtf.parseDateTime(dateTime);

System.out.println(jodatime );