错误的月份的最后一天

wal*_*mar 6 java calendar java-6

在我的服务中,某个月的最后一天有哪些功能?

 DateFormat format = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
        Date date = format.parse(stringDate);
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);

        calendar.add(Calendar.MONTH, 1);
        calendar.set(Calendar.DAY_OF_MONTH, 1);
        calendar.add(Calendar.DATE, -1);

        Date lastDayOfMonth = calendar.getTime();

        DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

        return sdf.format(lastDayOfMonth);
Run Code Online (Sandbox Code Playgroud)

所以,这种方法在其他地方正确使用,但在美国最后一天总是29(最后一天 - 1)

stringDate是格式为"yyyy-MM-dd"的日期

Pha*_*ung 4

我相信这个问题是由于美国的夏令时造成的。

您可以通过将日历的时区设置为不同的时区来更改此设置。

相关问题:使用 java.util.Calendar 添加天数会产生奇怪的结果