4

文字列の日付を特定のタイムゾーンおよび特定の形式のDateTimeオブジェクトに変換したいと思います。どうすればいいですか?

文字列の日付は、世界中で使用されている任意の形式にすることができます。例MM-DD-YYYY、YYYY-MM-DD、MM / DD / YY、MM / DD / YYYYなど。TimeZoneは、ユーザーが指定した任意の有効なタイムゾーンにすることができます。

例-太平洋標準時のYYYY-MM-DDをMM/DD/YYに変換します。

4

1 に答える 1

8

DateTimeFormatterBuilder複数のを解析/フォーマットできるフォーマッターを構築し、指定されたものを使用するようDateTimeFormatに結果を設定するためDateTimeFormatterに使用しますDateTimeZone

DateTimeParser[] parsers = { 
  DateTimeFormat.forPattern("MM-dd-yyyy").getParser(),
  DateTimeFormat.forPattern("yyyy-MM-dd").getParser(),
  DateTimeFormat.forPattern("MM/dd/yyyy").getParser(),
  DateTimeFormat.forPattern("yyyy/MM/dd").getParser()
};

DateTimeFormatter formatter = new DateTimeFormatterBuilder()
  .append(null, parsers)
  .toFormatter()
  .withZone(DateTimeZone.UTC);

DateTime dttm1 = formatter.parseDateTime("01-31-2012");
DateTime dttm2 = formatter.parseDateTime("01/31/2012");
DateTime dttm3 = formatter.parseDateTime("2012-01-31");

与えられたものをフォーマットするには、をDateTime使用するだけdttm1.toString("yyyy-MM-dd"))です。

于 2012-09-14T00:12:29.837 に答える