当前位置: 首页 > 知识库问答 >
问题:

Java自动完成/格式化来自MM-DD输入的日期

东门玺
2023-03-14

是否有一种方法来自动完成一个日期在YYYY-MM-DD格式,其中输入字段将只需要MM-DD。

除非月和日是过去的,否则该年将是当前的一年。

示例:

共有1个答案

齐英耀
2023-03-14

这就是java.time类的优势所在。

public static LocalDate autocomplete(String mmdd) {
    ZoneId clientTimeZone = ZoneId.systemDefault();
    LocalDate today = LocalDate.now(clientTimeZone);
    MonthDay md = MonthDay.parse(mmdd, DateTimeFormatter.ofPattern("MM-dd"));
    Year y = Year.from(today);
    if (md.isBefore(MonthDay.from(today))) {
        // in the past; use next year
        y = y.plusYears(1);
    }
    return y.atMonthDay(md);
}

请注意对时区的依赖关系。三思而后行,你应该使用哪个区域。

如果需要将结果作为字符串,只需使用tostring()

 类似资料:
  • 这将产生。但我需要的是。我的目的是使用Hibernate标准将此日期与数据库中的另一个日期进行比较。所以我需要格式的date对象。

  • 问题内容: 我正在尝试从转换日期。我已经使用了mktime()函数和其他函数,但是我似乎无法使其工作。我已经成功地将原始日期用作定界符,但更改格式并将其与交换时没有成功。 任何帮助将不胜感激。 问题答案: 通过查看各个组成部分之间的分隔符,可以消除或格式中的日期的歧义:如果该分隔符是斜杠(),则假定为American ;否则,为0。反之,如果分隔符是破折号()或点(),则采用欧洲格式。 使用默认的

  • 我有一个格式为。我希望它的格式为 下面是我尝试进行此转换的示例util: 但是,我得到的输出不是格式。 请告诉我如何将从格式化为

  • 问题内容: 如何将日历日期转换为格式。 这将产生。但是我需要的是。我的目的是使用条件将此日期与数据库中的另一个日期进行比较。所以我需要格式的日期对象。 问题答案: Java是自1970年1月1日格林尼治标准时间00:00:00以来的毫秒数的容器。 当你使用时,Java将使用打印内容。 更改它的唯一方法是重写Date并提供你自己的实现。现在,在启动IDE并尝试执行此操作之前,我不会这样做。它只会使事

  • 我从格式为yyyy-mm-dd(加上不需要的hh-mm-ss)的API中获取日期结果。我想在jQuery中将其转换为dd-mm-yyyy格式,最简单/最快的方法是什么? 目前我正在使用:(对于返回的字符串yyyy-mm-dd): 但是好像有点啰嗦。

  • 问题内容: 我有一个日期为dd-mm-yyyy格式的日期(在我的数据库内)。我需要将其转换为dd-mm-yy格式。我从db中检索了日期并将其存储在字符串中。 1990并不是完全需要的,只需要90.使用java中的split()我尝试了一些东西,但它不会帮助我。任何人都可以帮忙。任何帮助将不胜感激。 问题答案: 试试下面的代码