java - 如何获取给定日期的月份的最后一天

标签 java date calendar

<分区>

我有一个给定的日期:

01/10/2017(mm/dd/yyyy)

Calendar c = c.getInstance();

c.setTime(date);

现在指向我使用以下代码的月份的最后一天:

c.set(Calendar.Date, c.getActualMaximum(Calendar.Date));

Expected Output : 01/31/2017

Original Output : 02/01/2017

我没有得到预期的输出。它在下个月的第一天返回我。

谁能帮帮我?

最佳答案

您最好在此处使用 Java 8 的新日期时间功能:

LocalDate date = LocalDate.of(2000, Month.OCTOBER, 15);
LocalDate lastOfMonth = date.with(TemporalAdjusters.lastDayOfMonth());
System.out.printf("last day of Month: %s%n", lastOfMonth );

是的,理论上您也可以使用 Calendar 对象并自己执行各种低级操作。但很有可能:你会弄错......好吧,除非你看here并按照那里的建议进行操作。

但正如 Basil 正确指出的那样:310 项目非常接近 java.time(因为后者旨在匹配前者);和 310 可以“移植”back到Java7。因此,如果您需要在多个地方处理日期,我会仔细研究:使用“合理的”日期/时间库让您的生活更轻松。

关于java - 如何获取给定日期的月份的最后一天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41697143/

相关文章:

java 数组列表迭代异常

java - Spring Boot 2.0.0.M2如何在@Bean方法中注册RouterFunction?

java - Hashmap 与数组性能

python - 如果日期在另一个数据帧的日期范围内且项目相等,则在一个数据帧中分配值

javascript - 如何从javascript中的字符串中获取月份

angularjs - 如何将从 webapi 返回的日期以字符串格式转换为 AngularJs 的 javascript 日期格式

java - USACO 训练挤奶时间(最长非挤奶时间) - java

outlook - 如何生成 url 以将事件添加到 Outlook Web 客户端日历

c# - 在 .NET c# 中制作 MSSQL 驱动的日历

ios - 如何在 iOS 的 tapku 库日历中禁用(用户交互关闭)过去的日期