【发布时间】:2018-11-21 10:54:35
【问题描述】:
我如何通过给出月份中的星期和星期几来获取日期。
示例:如果我需要 2018 年 11 月的第三个星期二。
一个月的第几周:3, 星期几:3
预计日期:2018 年 11 月 20 日
但我们得到的值是:2018 年 11 月 13 日。由于该月的开始日期(星期四)小于预期日期(星期二)。
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR,2018 );
calendar.set(Calendar.MONTH, 10);
calendar.set(Calendar.WEEK_OF_MONTH, 3);
calendar.set(Calendar.DAY_OF_WEEK, 3);
System.out.println("Time " + calendar.getTime());
我如何获得正确的日期?
【问题讨论】:
-
如果只输入月份的星期几和星期几,那么如何确定是哪个月份呢?
-
WEEK_OF_MONTH 应该是 4。因为 20 日是 11 月的第 4 周。使用这个值可以正常工作。经过测试。
-
Calendar类存在设计问题并且早已过时。使用现代 Java 日期和时间 APIjava.time。根据您对一个月中周数的定义,WeekFields类可能很有用。
标签: java date calendar dayofweek week-number