Joda Time - 将字符串转换为具有特定时区和特定格式的DateTime [英] Joda Time - Convert a String into a DateTime with a particular timezone and in a particular format

查看:269
本文介绍了Joda Time - 将字符串转换为具有特定时区和特定格式的DateTime的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想将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 DateTimeFormats, 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆