add constructor

This commit is contained in:
Looly 2021-03-25 09:56:49 +08:00
parent dee78c8b61
commit fd4b185929
4 changed files with 62 additions and 5 deletions

View File

@ -3,14 +3,17 @@
-------------------------------------------------------------------------------------------------------------
# 5.6.2 (2021-03-21)
# 5.6.2 (2021-03-24)
### 新特性
* 【core 】 Validator增加车架号(车辆识别码)验证、驾驶证驾驶证档案编号的正则校验pr#280@Gitee
* 【core 】 CopyOptions增加propertiesFilterpr#281@Gitee
* 【extra 】 增加Wit模板引擎支持
* 【core 】 增加DesensitizedUtilpr#282@Gitee
* 【core 】 增加DateTime字符串构造issue#I3CQZG@Gitee
### Bug修复
* 【core 】 修复FileTypeUtil中OFD格式判断问题pr#1489@Github
-------------------------------------------------------------------------------------------------------------

View File

@ -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());
}
/**
* 构造格式<br>
* <ol>
* <li>yyyy-MM-dd HH:mm:ss</li>
* <li>yyyy/MM/dd HH:mm:ss</li>
* <li>yyyy.MM.dd HH:mm:ss</li>
* <li>yyyy年MM月dd日 HH时mm分ss秒</li>
* <li>yyyy-MM-dd</li>
* <li>yyyy/MM/dd</li>
* <li>yyyy.MM.dd</li>
* <li>HH:mm:ss</li>
* <li>HH时mm分ss秒</li>
* <li>yyyy-MM-dd HH:mm</li>
* <li>yyyy-MM-dd HH:mm:ss.SSS</li>
* <li>yyyyMMddHHmmss</li>
* <li>yyyyMMddHHmmssSSS</li>
* <li>yyyyMMdd</li>
* <li>EEE, dd MMM yyyy HH:mm:ss z</li>
* <li>EEE MMM dd HH:mm:ss zzz yyyy</li>
* <li>yyyy-MM-dd'T'HH:mm:ss'Z'</li>
* <li>yyyy-MM-dd'T'HH:mm:ss.SSS'Z'</li>
* <li>yyyy-MM-dd'T'HH:mm:ssZ</li>
* <li>yyyy-MM-dd'T'HH:mm:ss.SSSZ</li>
* </ol>
*
* @param dateStr Date字符串
* @since 5.6.2
*/
public DateTime(CharSequence dateStr) {
this(DateUtil.parse(dateStr));
}
/**
* 构造
*

View File

@ -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;

View File

@ -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");