gpt4 book ai didi

Java 实体 - 存储日期

转载 作者:行者123 更新时间:2023-12-01 16:49:29 28 4
gpt4 key购买 nike

如何在我的实体中以 14-04-2017 格式存储日期?

但我必须从字符串中解析它。

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
try {
today = dateFormat.parse("2017-04-14");
} catch (ParseException e) {
//catch exception
}

我得到:2017 年 CEST 2017 年 4 月 14 日星期五 00:00:00

最佳答案

tl;博士

LocalDate.parse( "2017-04-14" )

使用java.time

您使用了错误的类。

避免使用麻烦的旧遗留类,例如 DateCalendarSimpleDateFormat。现已被 java.time 取代类。

本地日期

LocalDate类表示仅日期值,没有时间和时区。

ISO 8601

您的输入恰好符合 ISO 8601标准。 java.time 类在解析/生成字符串时默认使用这些标准格式。因此无需指定格式模式。

LocalDate ld = LocalDate.parse( "2017-04-14" );

要生成相同格式的字符串,请调用toString

String output = ld.toString() ;

不要将字符串与日期时间对象混为一谈。可以通过解析字符串来创建日期时间对象。日期时间对象可以生成字符串来表示其值。但字符串和日期时间始终是分开且不同的。

问题中的第一行使用不同的格式。我希望那是一个错误。您应该尽可能坚持使用 ISO 8601 格式,尤其是在序列化数据交换时。

如果您确实需要其他格式,请搜索DateTimeFormatter。已经在 Stack Overflow 上报道过很多次了。

<小时/>

关于java.time

java.time框架内置于 Java 8 及更高版本中。这些类取代了麻烦的旧类 legacy日期时间类,例如 java.util.Date , Calendar , & SimpleDateFormat .

Joda-Time项目,现在位于 maintenance mode ,建议迁移到java.time类。

要了解更多信息,请参阅 Oracle Tutorial 。并在 Stack Overflow 上搜索许多示例和解释。规范为JSR 310 .

从哪里获取java.time类?

ThreeTen-Extra项目通过附加类扩展了 java.time。该项目是 java.time future 可能添加的内容的试验场。您可能会在这里找到一些有用的类,例如 Interval , YearWeek , YearQuarter ,和more .

关于Java 实体 - 存储日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43414221/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com