Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Joda Time-将字符串转换为具有特定时区和特定格式的日期时间_Java_Jodatime - Fatal编程技术网

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

Java Joda Time-将字符串转换为具有特定时区和特定格式的日期时间,java,jodatime,Java,Jodatime,我想将字符串日期转换为特定时区和特定格式的DateTime对象。我怎么做 字符串日期可以是世界上使用的任何格式。示例MM-DD-YYYY、YYYY-MM-DD、MM/DD/YY ,MM/DD/YYYY等。时区可以是用户指定的任何法定时区 示例-将太平洋时区的YYYY-MM-DD转换为MM/DD/YY 用于构建能够分析/格式化多个DateTimeFormats的格式化程序,并将生成的DateTimeFormatter设置为使用指定的DateTimeZone: DateTimeParser[] pa

我想将字符串日期转换为特定时区和特定格式的DateTime对象。我怎么做

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

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

用于构建能够分析/格式化多个
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”)

是否需要指定“特定”字符串、时区和格式?在我添加了一些行并获得了一个输出时,这里有一些示例。系统输出打印LN(dttm1);系统输出打印LN(dttm2);系统输出打印LN(dttm3);输出为-2012-01-31T00:00:00.000Z 2012-01-31T00:00:00.000Z 2012-01-31T00:00:00.000Z我无法正确理解代码。这是否将解析器中的所有4种格式转换为“YYYY-MM-DD”+0s格式?我怎样才能去掉所有的零呢?@davidblaine:那是因为你有一个
DateTime
对象。如果只需要格式为
YYYY-MM-DD
的字符串,请调用
dttm1.toString(“yyy-MM-DD”)