我想将字符串日期转换为特定时区和特定格式的 DateTime 对象。我该怎么做 ?
字符串日期可以是世界上使用的任何格式。示例 MM-DD-YYYY、YYYY-MM-DD、MM/DD/YY、MM/DD/YYYY 等。时区可以是用户指定的任何合法时区。
示例 - 将 YYYY-MM-DD 转换为太平洋时区的 MM/DD/YY。
用于DateTimeFormatterBuilder
构建能够解析/格式化多个DateTimeFormat
s 的格式化程序,并将结果设置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"))
.