Joda Time - 将字符串转换为具有特定时区和特定格式的DateTime [英] Joda Time - Convert a String into a DateTime with a particular timezone and in a particular format
问题描述
我想将String Date转换为特定时区和特定格式的DateTime对象。我该怎么办?
I want to convert a String Date into a DateTime object for a particular timezone and in a particular format. How can I do it ?
字符串日期可以是世界上使用的任何格式。示例MM-DD-YYYY,YYYY-MM-DD,MM / DD / YY
,MM / DD / YYYY等.TimeZone可以是用户指定的任何合法时区。
String Date can be in any format used in the world. Example MM-DD-YYYY, YYYY-MM-DD, MM/DD/YY , MM/DD/YYYY etc. TimeZone can be any legal timezone specified by the user.
示例 - 将YYYY-MM-DD转换为太平洋时区的MM / DD / YY。
Example - convert YYYY-MM-DD into MM/DD/YY for the Pacific Timezone.
推荐答案
使用 DateTimeFormatterBuilder
构建一个能够解析/格式化多个 DateTimeFormat的格式化程序
s,并设置结果 DateTimeFormatter
以使用指定的 DateTimeZone
:
Use DateTimeFormatterBuilder
to build a formatter that is able to parse/format multiple DateTimeFormat
s, and set the resulting DateTimeFormatter
to use a specified 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))
。
To format a given DateTime
you can just use dttm1.toString("yyyy-MM-dd"))
.
这篇关于Joda Time - 将字符串转换为具有特定时区和特定格式的DateTime的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!