【问题标题】:Current week monday date [duplicate]当前周星期一日期[重复]
【发布时间】:2017-09-09 07:15:41
【问题描述】:

在我的情况下,一周从 周一到周日开始。我想获取当前周 周一 日期。 我使用以下代码获取星期一日期。

        Calendar c = Calendar.getInstance();
        c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
        System.out.println("Date " + c.getTime());

它适用于所有日子除了星期日,如果当天是星期日,它将给出下周星期一日期。是否有可能获得当前星期星期一日期使用 java.util.Date/Calendar API,即使是星期天。

任何帮助表示赞赏。

【问题讨论】:

  • 您使用 Java 8 吗?如果是这样,您可能更想查找java.time-API。

标签: java date java.util.date java.util.calendar java-calendar


【解决方案1】:

您可以告诉Calendar 班级应该将一周中的哪一天视为第一天。尝试添加以下行:

c.setFirstDayOfWeek(Calendar.MONDAY);

【讨论】:

  • 不,它不起作用,同样的事情,我下周星期一约会。
【解决方案2】:
LocalDateTime thisWeeksMonday = LocalDateTime.now().with(DayOfWeek.MONDAY);

以防万一 Java 8 是一个选项。

如“Get date of first day of week based on LocalDate.now() in Java 8”中所述,您的用法可能会有所不同。

关于 Java setFirstDayOfWeek。请确保在更改星期几之前设置它,例如:

Calendar c = Calendar.getInstance();
c.setFirstDayOfWeek(Calendar.MONDAY);
c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
System.out.println("Date " + c.getTime());

【讨论】:

  • 是的,我知道这适用于 java 8,但我使用的是旧版本 java 1.7。
  • 真可惜:-/
  • 不,我在没用之前尝试过这个东西..我仍然得到相同的结果。
  • hmmm...我想知道您是否期望一些不同的东西...您能否添加示例您对哪个日期的期望以及您得到的东西?这样你也不会冒它被重复关闭的风险。
  • Java 8 和 9 中内置的大部分 java.time 功能在 ThreeTen-Backport 项目中向后移植到 Java 6 和 7。在 ThreeTenABP 项目中进一步适用于 Android。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-27
相关资源
最近更新 更多