Joda Time - 将字符串转换为具有特定时区和特定格式的DateTime

dav*_*ine 4 java jodatime

我想将String Date转换为特定时区和特定格式的DateTime对象.我该怎么做 ?

字符串日期可以采用世界上使用的任何格式.示例MM-DD-YYYY,YYYY-MM-DD,MM/DD/YY,MM/DD/YYYY等.TimeZone可以是用户指定的任何合法时区.

示例 - 将YYYY-MM-DD转换为太平洋时区的MM/DD/YY.

Joã*_*lva 7

使用DateTimeFormatterBuilder建立一个格式,它能够解析/格式的多个DateTimeFormatS,并设置导致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");
Run Code Online (Sandbox Code Playgroud)

要格式化给定,DateTime您可以使用dttm1.toString("yyyy-MM-dd")).