diff --git a/CHANGELOG.md b/CHANGELOG.md index 73018e528..6421908cb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,14 +3,17 @@ ------------------------------------------------------------------------------------------------------------- -# 5.6.2 (2021-03-21) +# 5.6.2 (2021-03-24) ### 新特性 * 【core 】 Validator增加车架号(车辆识别码)验证、驾驶证(驾驶证档案编号)的正则校验(pr#280@Gitee) * 【core 】 CopyOptions增加propertiesFilter(pr#281@Gitee) * 【extra 】 增加Wit模板引擎支持 * 【core 】 增加DesensitizedUtil(pr#282@Gitee) +* 【core 】 增加DateTime字符串构造(issue#I3CQZG@Gitee) + ### Bug修复 +* 【core 】 修复FileTypeUtil中OFD格式判断问题(pr#1489@Github) ------------------------------------------------------------------------------------------------------------- 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 2c189d103..17f63cc51 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 @@ -122,7 +122,7 @@ public class DateTime extends Date { */ public DateTime(Date date) { this( - date.getTime(),// + date,// (date instanceof DateTime) ? ((DateTime) date).timeZone : TimeZone.getDefault() ); } @@ -135,7 +135,7 @@ public class DateTime extends Date { * @since 4.1.2 */ public DateTime(Date date, TimeZone timeZone) { - this(date.getTime(), timeZone); + this(ObjectUtil.defaultIfNull(date, new Date()).getTime(), timeZone); } /** @@ -211,6 +211,38 @@ public class DateTime extends Date { this.timeZone = ObjectUtil.defaultIfNull(timeZone, TimeZone.getDefault()); } + /** + * 构造格式:
+ *
    + *
  1. yyyy-MM-dd HH:mm:ss
  2. + *
  3. yyyy/MM/dd HH:mm:ss
  4. + *
  5. yyyy.MM.dd HH:mm:ss
  6. + *
  7. yyyy年MM月dd日 HH时mm分ss秒
  8. + *
  9. yyyy-MM-dd
  10. + *
  11. yyyy/MM/dd
  12. + *
  13. yyyy.MM.dd
  14. + *
  15. HH:mm:ss
  16. + *
  17. HH时mm分ss秒
  18. + *
  19. yyyy-MM-dd HH:mm
  20. + *
  21. yyyy-MM-dd HH:mm:ss.SSS
  22. + *
  23. yyyyMMddHHmmss
  24. + *
  25. yyyyMMddHHmmssSSS
  26. + *
  27. yyyyMMdd
  28. + *
  29. EEE, dd MMM yyyy HH:mm:ss z
  30. + *
  31. EEE MMM dd HH:mm:ss zzz yyyy
  32. + *
  33. yyyy-MM-dd'T'HH:mm:ss'Z'
  34. + *
  35. yyyy-MM-dd'T'HH:mm:ss.SSS'Z'
  36. + *
  37. yyyy-MM-dd'T'HH:mm:ssZ
  38. + *
  39. yyyy-MM-dd'T'HH:mm:ss.SSSZ
  40. + *
+ * + * @param dateStr Date字符串 + * @since 5.6.2 + */ + public DateTime(CharSequence dateStr) { + this(DateUtil.parse(dateStr)); + } + /** * 构造 * diff --git a/hutool-core/src/test/java/cn/hutool/core/collection/CollUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/collection/CollUtilTest.java index 076dd64fb..9584ec75a 100644 --- a/hutool-core/src/test/java/cn/hutool/core/collection/CollUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/collection/CollUtilTest.java @@ -1,6 +1,7 @@ package cn.hutool.core.collection; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.lang.Console; import cn.hutool.core.lang.Dict; import cn.hutool.core.lang.Editor; import cn.hutool.core.lang.Filter; diff --git a/hutool-core/src/test/java/cn/hutool/core/date/DateTimeTest.java b/hutool-core/src/test/java/cn/hutool/core/date/DateTimeTest.java index e8de2f82d..d35053b52 100644 --- a/hutool-core/src/test/java/cn/hutool/core/date/DateTimeTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/date/DateTimeTest.java @@ -5,7 +5,7 @@ import org.junit.Test; /** * DateTime单元测试 - * + * * @author Looly * */ @@ -32,6 +32,27 @@ public class DateTimeTest { Assert.assertEquals(5, day); } + @Test + public void datetimeTest2() { + DateTime dateTime = new DateTime("2017-01-05 12:34:23"); + + // 年 + int year = dateTime.year(); + Assert.assertEquals(2017, year); + + // 季度(非季节) + Quarter season = dateTime.quarterEnum(); + Assert.assertEquals(Quarter.Q1, season); + + // 月份 + Month month = dateTime.monthEnum(); + Assert.assertEquals(Month.JANUARY, month); + + // 日 + int day = dateTime.dayOfMonth(); + Assert.assertEquals(5, day); + } + @Test public void quarterTest() { DateTime dateTime = new DateTime("2017-01-05 12:34:23", DatePattern.NORM_DATETIME_FORMAT); @@ -90,7 +111,7 @@ public class DateTimeTest { int month = DateUtil.parse("2017-07-01").month(); Assert.assertEquals(6, month); } - + @Test public void weekOfYearTest() { DateTime date = DateUtil.parse("2016-12-27");