首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java数据格式化程序

Java数据格式化程序
EN

Stack Overflow用户
提问于 2013-11-25 19:59:13
回答 2查看 444关注 0票数 1

是否有一种简单的方法在Java中解析以下2种类型的字符串

代码语言:javascript
运行
复制
2013-11-22T18:37:55.645+0000
2013-11-22T14:20:30.645Z

两者的含义相同,但我不得不使用两种不同的日期格式模式。

代码语言:javascript
运行
复制
yyyy-MM-dd'T'HH:mm:ss.SSSZ
yyyy-MM-dd'T'HH:mm:ss.SSS'Z'

我只想用一个模式来做。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-26 05:46:26

您的两种格式模式都是相同的变体,ISO 8601

尤达-时间 2.3中很简单。

一行代码,使用Joda-Time的内置ISO 8601格式化程序。该格式化程序处理两个偏移量,要么是零,要么是Z

代码语言:javascript
运行
复制
org.joda.time.format.ISODateTimeFormat.dateTime().withZoneUTC().parseDateTime( eitherStringGoesHere );

更详细的代码…

代码语言:javascript
运行
复制
// © 2013 Basil Bourque. This source code may be used freely forever by anyone taking full responsibility for doing so.

String dateTimeStringZero = "2013-11-22T18:37:55.645+0000";
String dateTimeStringZulu = "2013-11-22T18:37:55.645Z";

org.joda.time.DateTime dateTimeZero = org.joda.time.format.ISODateTimeFormat.dateTime().withZoneUTC().parseDateTime( dateTimeStringZero );
org.joda.time.DateTime dateTimeZulu = org.joda.time.format.ISODateTimeFormat.dateTime().withZoneUTC().parseDateTime( dateTimeStringZulu );

输出…

代码语言:javascript
运行
复制
System.out.println( "dateTimeZero: " + dateTimeZero );
System.out.println( "dateTimeZulu: " + dateTimeZulu );

运行…时

代码语言:javascript
运行
复制
dateTimeZero: 2013-11-22T18:37:55.645Z
dateTimeZulu: 2013-11-22T18:37:55.645Z

如果您想要一个时间分区的DateTime,请更改withZoneUTC()。请参阅withZone方法。对于用户的默认时区,只需省略任何时区调用。

票数 1
EN

Stack Overflow用户

发布于 2013-11-25 20:21:51

你试过这个吗?

代码语言:javascript
运行
复制
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
    Date dt1 = sdf.parse(str1);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20202113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档