如何在Java中创建没有year参数的新Date对象?

问题描述 投票:7回答:1

我正在尝试使用新的SimpleDateFormat来解析dd-MM格式的字符串。基本上,我想从字符串中创建一个日期对象并保留在数据库中。

当我检查数据库条目时,我看到它将1970年添加到年份列。我相信它是空的时候提供的年份的默认值。有没有办法防止年份价值。我不想存储有关年份的信息。

我的代码 -

String dateOfBirth = "14-Feb";
dbObject.save(new SimpleDateFormat("dd-MMM").parse(dateOfBirth));

为简单起见,假设dbObject.save()方法需要提供日期对象。我不想创建一个有价值的日期 - 1970年2月14日,而不是仅仅是2月14日。

java date jsp time simpledateformat
1个回答
5
投票

我强烈建议您使用java.time.MonthDay类存储日期。如果您的数据库不支持存储它,您可以将其存储为字符串,并将parse存储在数据库中。

以下是解析日期的方法:

MonthDay md = MonthDay.parse("14-Feb", DateTimeFormatter.ofPattern("dd-MMM").withLocale(Locale.US));

然后,您可以将.toString返回的字符串存储到数据库中(它将类似于--02-14),并且下次parse它时,您不需要日期时间格式化程序:

MonthDay md = MonthDay.parse("--02-14");
© www.soinside.com 2019 - 2024. All rights reserved.