【发布时间】:2015-02-27 15:42:17
【问题描述】:
我必须用 Java 计算一年中的当前日期是多少。
例如,如果今天是 1 月 1 日,则结果应该是 1。如果是 2 月 5 日,结果应该是 36
如何在 Java 中自动执行此操作?是否存在一些原生支持此功能的类(例如 Calendar)?
【问题讨论】:
标签: java date jakarta-ee calendar
我必须用 Java 计算一年中的当前日期是多少。
例如,如果今天是 1 月 1 日,则结果应该是 1。如果是 2 月 5 日,结果应该是 36
如何在 Java 中自动执行此操作?是否存在一些原生支持此功能的类(例如 Calendar)?
【问题讨论】:
标签: java date jakarta-ee calendar
使用 Java 8:
LocalDate date = LocalDate.of(2015, 2, 5);
int dayNum = date.getDayOfYear();
【讨论】:
您可以使用java.util.Calendar 类。小心那个月是从零开始的。所以在你的情况下,一月一日应该是:
Calendar calendar = new GregorianCalendar(2015, 0, 1);
int dayOfYear = calendar.get(Calendar.DAY_OF_YEAR);
【讨论】:
Calendar#get(Calendar.DAY_OF_YEAR);
【讨论】:
int dayOfYear = Calendar.getInstance().get(Calendar.DAY_OF_YEAR);
【讨论】:
在Joda-Time2.7:
int dayOYear = DateTime.now().getDayOfYear();
时区对于确定一天至关重要。上面的代码使用 JVM 当前的默认时区。通常最好指定一个时区。
DateTimeZone zone = DateTimeZone.forID( "America/Montreal" );
int dayOYear = DateTime.now( zone ).getDayOfYear();
【讨论】: