1

我是 Java 新手。我有这段代码,用于获取当前的一周中的哪一天。

GregorianCalendar calendar = new GregorianCalendar();
DateFormat df = new SimpleDateFormat("EEEE");
for (int i = 0; i < 7; i++) {
    calendar.add(Calendar.DATE, 1);
    System.out.println(df.format(calendar.getTime()));
}

我想编辑代码以相同的方式获取一年中的月份 - 从当前月份开始。你能帮我编辑代码吗?

4

3 回答 3

4

好吧,您可以将一个月中的日期设置为 1(只是为了保持理智),然后在每个步骤中添加一个月而不是一天。或者,您可以只使用:

DateFormatSymbols symbols = new DateFormatSymbols(locale);
String[] months = symbols.getMonths();

...然后从那里去。

您也可以getWeekdays以同样的方式使用日期名称。

于 2012-09-29T18:59:15.690 回答
2

您可以使用Calendar.MONTH. 只需对您的代码进行最少的更改,它将如下所示:

GregorianCalendar calendar = new GregorianCalendar();
DateFormat df = new SimpleDateFormat("MMMM");
for (int i = 0; i < 12; i++) {
    calendar.add(Calendar.MONTH, 1);
    System.out.println(df.format(calendar.getTime()));
}
于 2012-09-29T19:01:57.467 回答
1

在 JodaTime 中,您可以执行 new DateTime() 然后执行 plusMonths(1) 以添加一个月。这将返回一个月的日期。然后,您可以解析它以获取月份。然后重复 11 次以获得剩余的月份。

此链接将有助于获取月份名称http://joda-time.sourceforge.net/key_instant.html

于 2012-09-29T19:02:31.133 回答