我正在尝试使用新的SimpleDateFormat
来解析dd-MM格式的字符串。基本上,我想从字符串中创建一个日期对象并保存在数据库中。
当我检查数据库条目时,我看到它将1970追加到year列。我相信这是空时提供的年份的默认值。有没有一种方法可以防止年份值。我不想存储有关年份的信息。
我的代码-
String dateOfBirth = "14-Feb";
dbObject.save(new SimpleDateFormat("dd-MMM").parse(dateOfBirth));
为简单起见,假设dbObject.save()
方法期望提供日期对象。我不想创建一个值日期-1970年2月14日,而应该只是2月14日。
答案 0 :(得分: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");