java - 如何在 Java 中创建一个没有年份参数的新 Date 对象?

标签 java date jsp time simpledateformat

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

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

我的代码-

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

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

最佳答案

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

以下是您解析日期的方式:

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

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

MonthDay md = MonthDay.parse("--02-14");

关于java - 如何在 Java 中创建一个没有年份参数的新 Date 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55888029/

相关文章:

java - Google map 在 Android 应用程序中不显示图 block

SQL 比较 Access 中保存的日期与今天的日期不起作用

parsing - 用 Dart 解析日期

java - 改变背景颜色jsp

以下查询的 mysql 更新错误

java - action.sendKeys(body, Keys.CONTROL + "j") 打不开下载页面

java - 我们什么时候在 JUnit 中使用 'Theories'?

java - 从命令行运行gradle时如何将自定义JAR文件添加到CLASSPATH?

java - 从 java.util.Date 到 java.sql.Timestamp 时添加了无法解释的零

java - Spring无法使用javax.servlet编译jsp