1

目标:我想使用 Date() 将接下来 12 周的一周中的最后一天(星期日)转换为单独的字符串

我有下面这给了我正确的日期格式。我只需要关于实现目标的最佳解决方案的建议。

    DateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy");
    Date date = new Date(0);
    System.out.println(dateFormat.format(date)); 
4

4 回答 4

1

Java 的日期系统让我感到困惑,但我认为你想这样做:

1)而不是制作一个日期,而是制作一个公历。

2) Calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY) 获取本周星期日的日期。

3) 在 for 循环中,将 7 天添加到日历十二次。在每个循环上做一些事情(例如,使用 getTime() 从 GregorianCalendar 获取日期)

于 2013-03-28T02:22:59.803 回答
1

尝试

    GregorianCalendar c = new GregorianCalendar();
    for (int i = 0; i < 12;) {
        c.add(Calendar.DATE, 1);
        if (c.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) {
            System.out.println(DateFormat.getDateInstance().format(c.getTime()));
            i++;
        }
    }
于 2013-03-28T04:20:55.280 回答
1

首先,一周的最后一天并不总是与星期日相同,因为它取决于您使用的区域设置。

如果您使用的是 Java 8,则解决方案非常简单:

LocalDate firstJanuary = LocalDate.parse("01/01/2015",
                           DateTimeFormatter.ofPattern("MM/dd/yyyy"));

//last day of the week
TemporalField fieldUS = WeekFields.of(Locale.US).dayOfWeek();
LocalDate lastDayOfWeek = firstJanuary.with(fieldUS,7);
System.out.println(lastDayOfWeek);

//sunday
LocalDate sunday = firstJanuary.with(DayOfWeek.SUNDAY);
System.out.println(sunday);

并迭代到几周后,只需使用:

sunday.plusWeeks(1);
于 2015-06-21T11:16:26.787 回答
1
于 2017-12-29T06:37:58.467 回答