文字列の日付を特定のタイムゾーンおよび特定の形式のDateTimeオブジェクトに変換したいと思います。どうすればいいですか?
文字列の日付は、世界中で使用されている任意の形式にすることができます。例MM-DD-YYYY、YYYY-MM-DD、MM / DD / YY、MM / DD / YYYYなど。TimeZoneは、ユーザーが指定した任意の有効なタイムゾーンにすることができます。
例-太平洋標準時のYYYY-MM-DDをMM/DD/YYに変換します。
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"))
です。