栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

将日期字符串解析为某些Java对象

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将日期字符串解析为某些Java对象

使用Joda-Time,看看 DateTimeFormat
;它允许解析您提到的两种日期字符串(以及几乎所有其他任意格式)。如果您的需求更加复杂,请尝试使用DateTimeFormatterBuilder。

解析#1:

DateTimeFormatter f = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");DateTime dateTime = f.parseDateTime("2012-01-10 23:13:26");

编辑:实际上,LocalDateTime对于没有时区的日期时间更合适:

LocalDateTime dateTime = f.parseLocalDateTime("2012-01-10 23:13:26");

对于#2:

DateTimeFormatter f = DateTimeFormat.forPattern("MMMM dd, yyyy");LocalDate localDate = f.parseLocalDate("January 13, 2012");

是的,就Java日期和时间处理而言,Joda-Time绝对是必经之路。:)

几乎每个人都会同意,Joda是一个非常易于使用的库。例如,我以前从未与Joda进行过这种解析,但是我只花了几分钟就从API找出并编写了。

更新(2015)

如果您使用的是 Java 8
,在大多数情况下,您应该只使用

java.time
Joda-Time即可。它包含了乔达(Joda)几乎所有的好东西。对于那些已经熟悉Joda API的人,Stephen
Colebourne的Joda-Time到java.time迁移指南非常有用。

这是上述示例的java.time版本。

解析#1:

DateTimeFormatter f = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");LocalDateTime dateTime = LocalDateTime.from(f.parse("2012-01-10 23:13:26"));

您无法将其解析为ZonedDateTime或OffsetDateTime(与我最初的回答中所用的Joda的DateTime相对应),但这有点有意义,因为解析的字符串中没有时区信息。

解析#2:

DateTimeFormatter f = DateTimeFormatter.ofPattern("MMMM dd, yyyy");LocalDate localDate = LocalDate.from(f.parse("January 13, 2012"));

这里LocalDate是最适合解析的类型(就像Joda-Time一样)。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/437482.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号