java - 有没有提供每月第一天的函数?

标签 java dayofweek date dayofmonth

在 Java 中,我可以通过以下方式获取该月的第一天:

GregorianCalendar date;
// Some code
int first = new GregorianCalendar(date.get(Calendar.YEAR),
            date.get(Calendar.MONTH), 1).get(Calendar.DAY_OF_WEEK);

我想知道是否有一个函数可以直接执行此操作,因为我找不到获取此重要信息的函数。

类似于我在这里尝试做的事情:

 for (int i = 1; i < days_in_month + first; i++) {
     // Some code
     if (i - first + 1 == date.get(Calendar.DAY_OF_MONTH)) {
         // Do something
     }
 }

最佳答案

您可以将 GregorianCalendar 对象转换为 LocalDate 对象并使用它方便的 API:

LocalDate getWithFirstDayOfMonth(GregorianCalendar c) {
    LocalDate date = c.toZonedDateTime().toLocalDate();
    return date.withDayOfMonth(1);
}

GregorianCalendar calendar = GregorianCalendar.from(ZonedDateTime.now());
LocalDate first = getWithFirstDayOfMonth(calendar);
System.out.println(first.getDayOfMonth());

关于java - 有没有提供每月第一天的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48309308/

相关文章:

C#:将初始 DayOfWeek 设置为星期一而不是星期日

java - 两个java日期之间的区别

javascript - 为什么 1387568966 在 Javascript 中是无效的日期?

date - D3.js- 如何将刻度值格式化为季度而不是月

java - 如何在 Java 中使二叉搜索树成为完整的二叉搜索树?

java - 记录用户交互 : log4j?

Postgresql 星期几的 Java 常量

android - GregorianCalendar setFirstDayOfWeek 不影响牛轧糖前的 WEEK_OF_YEAR

java - 为什么我的 Spring @Autowired 字段为空?

java - Java Servlet浏览器推送通知的体系结构