java - 设置calendar.day_of_month就是设置calendar.year

标签 java spring date calendar simpledateformat

我的日历最初设置为 2019-11-01,我想使用以下方法将其设置为该月的第一个日期和最后一个日期:

cal.set(int field,int value) 

对于我使用的字段:

Calendar.DATE or Calendar.DAY_OF_MONTH

但是 sysout 上的系统显示它正在设置 Calendar.YEAR

System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime()));

cal.set(cal.get(Calendar.DAY_OF_MONTH),1);
        
System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime()));
        
cal.set(cal.get(Calendar.DAY_OF_MONTH),cal.getActualMaximum(Calendar.DAY_OF_MONTH));

System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime()));

系统输出:

2019-11-01

0001-11-01

0030-11-01

最佳答案

您可以使用 java-8 现代日期时间 API LocalDate ,停止使用旧版 Calendarutil.Date

LocalDate date = LocalDate.parse("2019-11-01");

System.out.println(date.with(TemporalAdjusters.firstDayOfMonth()));  //2019-11-01
System.out.println(date.with(TemporalAdjusters.lastDayOfMonth()));   //2019-11-30

关于java - 设置calendar.day_of_month就是设置calendar.year,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58906174/

相关文章:

Java - Tuckee URL Rewrite 过滤器如何更改请求的 URL?

java - 如何在JAVA中保持(2^(n-1) mod 1 =1)的更大值

mysql - SQL Varchar 到毫秒

python - 按列表条目过滤 RavenDB 查询

java - JDK 8 是否支持 JasperReports 6?

java - HBase & JDBC 连接

spring - 如何自定义@FeignClient Expander 来转换参数?

java - 使用 Couchbase 进行单元和集成测试

java - Weblogic 12.1.3 压缩 gzip 的配置

.net - 在 C# 中将整数转换为月份名称的最佳方法?