diff --git a/hutool-core/src/main/java/cn/hutool/core/date/DateTime.java b/hutool-core/src/main/java/cn/hutool/core/date/DateTime.java index d0626f382..aefb3c538 100644 --- a/hutool-core/src/main/java/cn/hutool/core/date/DateTime.java +++ b/hutool-core/src/main/java/cn/hutool/core/date/DateTime.java @@ -454,6 +454,16 @@ public class DateTime extends Date { return getField(DateField.DAY_OF_MONTH); } + /** + * 获得指定日期是这个日期所在年份的第几天
+ * + * @return 天 + * @since 5.3.6 + */ + public int dayOfYear() { + return getField(DateField.DAY_OF_YEAR); + } + /** * 获得指定日期是星期几,1表示周日,2表示周一 * diff --git a/hutool-core/src/main/java/cn/hutool/core/date/DateUtil.java b/hutool-core/src/main/java/cn/hutool/core/date/DateUtil.java index 8a8580096..4d9e3dc5e 100644 --- a/hutool-core/src/main/java/cn/hutool/core/date/DateUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/date/DateUtil.java @@ -20,6 +20,7 @@ import java.time.LocalDateTime; import java.time.LocalTime; import java.time.OffsetDateTime; import java.time.OffsetTime; +import java.time.Year; import java.time.ZoneId; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; @@ -259,7 +260,7 @@ public class DateUtil extends CalendarUtil { * @since 5.3.6 */ public static int dayOfYear(Date date) { - return DateTime.of(date).getField(DateField.DAY_OF_YEAR); + return DateTime.of(date).dayOfYear(); } /** @@ -1863,6 +1864,17 @@ public class DateUtil extends CalendarUtil { return LocalDateTime.ofInstant(dateTime.toInstant(), dateTime.getZoneId()); } + /** + * 获得指定年份的总天数 + * + * @param year 年份 + * @return 天 + * @since 5.3.6 + */ + public static int lengthOfYear(int year) { + return Year.of(year).length(); + } + // ------------------------------------------------------------------------ Private method start /** diff --git a/hutool-core/src/test/java/cn/hutool/core/date/DateUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/date/DateUtilTest.java index 73af5b1f6..e643afd0d 100644 --- a/hutool-core/src/test/java/cn/hutool/core/date/DateUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/date/DateUtilTest.java @@ -4,7 +4,6 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.BetweenFormater.Level; import cn.hutool.core.date.format.FastDateFormat; import org.junit.Assert; -import org.junit.Ignore; import org.junit.Test; import java.text.SimpleDateFormat; @@ -380,14 +379,6 @@ public class DateUtilTest { Assert.assertEquals("2019-06-01 19:45:43", dateTime.toString()); } - @Test - @Ignore - public void parseTest8() { - String str = "2020-04-24 9:00:00"; - DateTime dateTime = DateUtil.parse(str); - Assert.assertEquals("2019-06-01 19:45:43", dateTime.toString()); - } - @Test public void parseAndOffsetTest() { // 检查UTC时间偏移是否准确 @@ -762,4 +753,12 @@ public class DateUtilTest { final long weekCount = DateUtil.betweenWeek(start, end, true); Assert.assertEquals(30L, weekCount); } + + @Test + public void dayOfYearTest() { + int dayOfYear = DateUtil.dayOfYear(DateUtil.parse("2020-01-01")); + Assert.assertEquals(1, dayOfYear); + int lengthOfYear = DateUtil.lengthOfYear(2020); + Assert.assertEquals(366, lengthOfYear); + } }