首页 > 解决方案 > 无法在 Java 中更改日历 DAY_OF_MONTH

问题描述

我在 Java 日历设置中有一个小问题。问题是我有这个代码,它返回"1980.09.12."

我可以随意更改年份和月份,但不能更改日期。

public class printableBeosztas extends HttpServlet {

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd.");
    Calendar calHetfo;

    public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        setDates();
        response.getWriter().append(sdf.format(calHetfo.getTime());
    }

    public void setDates() {
        calHetfo = Calendar.getInstance();
        calHetfo.set(Calendar.MONTH, 8);
        calHetfo.set(Calendar.YEAR, 1980);
        calHetfo.set(Calendar.DAY_OF_MONTH, 3);
    }
}

任何想法?

标签: javadatecalendardayofmonth

解决方案


如果您使用Java 8+ 的java.time API 会更容易,您可以在其中使用LocalDate.of和设置任何您想要的东西:

LocalDate ld = LocalDate.of(1980, Month.SEPTEMBER, 12);

要格式化日期,您可以使用:

String format = ld.format(DateTimeFormatter.ofPattern("yyyy.MM.dd."));

推荐阅读