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());
}
+ /**
+ * 构造格式:
+ *
+ * - yyyy-MM-dd HH:mm:ss
+ * - yyyy/MM/dd HH:mm:ss
+ * - yyyy.MM.dd HH:mm:ss
+ * - yyyy年MM月dd日 HH时mm分ss秒
+ * - yyyy-MM-dd
+ * - yyyy/MM/dd
+ * - yyyy.MM.dd
+ * - HH:mm:ss
+ * - HH时mm分ss秒
+ * - yyyy-MM-dd HH:mm
+ * - yyyy-MM-dd HH:mm:ss.SSS
+ * - yyyyMMddHHmmss
+ * - yyyyMMddHHmmssSSS
+ * - yyyyMMdd
+ * - EEE, dd MMM yyyy HH:mm:ss z
+ * - EEE MMM dd HH:mm:ss zzz yyyy
+ * - yyyy-MM-dd'T'HH:mm:ss'Z'
+ * - yyyy-MM-dd'T'HH:mm:ss.SSS'Z'
+ * - yyyy-MM-dd'T'HH:mm:ssZ
+ * - yyyy-MM-dd'T'HH:mm:ss.SSSZ
+ *
+ *
+ * @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");