mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-04-19 03:01:48 +08:00
add format support
This commit is contained in:
parent
a986fcbe3d
commit
7c6d7526b6
@ -121,19 +121,6 @@ public class DatePattern {
|
||||
*/
|
||||
public static final DateTimeFormatter NORM_DATETIME_MS_FORMATTER = createFormatter(NORM_DATETIME_MS_PATTERN);
|
||||
|
||||
/**
|
||||
* 标准日期时间格式,精确到毫秒:yyyy-MM-dd HH:mm:ss.SSSSSS
|
||||
*/
|
||||
public static final String NORM_DATETIME_MS_FULL_PATTERN = "yyyy-MM-dd HH:mm:ss.SSSSSS";
|
||||
/**
|
||||
* 标准日期时间格式,精确到毫秒 {@link FastDateFormat}:yyyy-MM-dd HH:mm:ss.SSSSSS
|
||||
*/
|
||||
public static final FastDateFormat NORM_DATETIME_MS_FULL_FORMAT = FastDateFormat.getInstance(NORM_DATETIME_MS_PATTERN);
|
||||
/**
|
||||
* 标准日期时间格式,精确到毫秒 {@link FastDateFormat}:yyyy-MM-dd HH:mm:ss.SSSSSS
|
||||
*/
|
||||
public static final DateTimeFormatter NORM_DATETIME_MS_FULL_FORMATTER = createFormatter(NORM_DATETIME_MS_PATTERN);
|
||||
|
||||
/**
|
||||
* ISO8601日期时间格式,精确到毫秒:yyyy-MM-dd HH:mm:ss,SSS
|
||||
*/
|
||||
|
@ -960,14 +960,15 @@ public class DateUtil extends CalendarUtil {
|
||||
// yyyy-MM-dd HH:mm
|
||||
return parse(dateStr, DatePattern.NORM_DATETIME_MINUTE_FORMAT);
|
||||
case 2:
|
||||
if (StrUtil.contains(dateStr, CharUtil.DOT)) {
|
||||
if (dateStr.length() == DatePattern.NORM_DATETIME_MS_PATTERN.length()) {
|
||||
// yyyy-MM-dd HH:mm:ss.SSS
|
||||
return parse(dateStr, DatePattern.NORM_DATETIME_MS_FORMAT);
|
||||
} else {
|
||||
// yyyy-MM-dd HH:mm:ss.SSSSSS
|
||||
return parse(dateStr, DatePattern.NORM_DATETIME_MS_FULL_FORMAT);
|
||||
final int indexOfDot = StrUtil.indexOf(dateStr, CharUtil.DOT);
|
||||
if (indexOfDot > 0) {
|
||||
final int length1 = dateStr.length();
|
||||
// yyyy-MM-dd HH:mm:ss.SSS 或者 yyyy-MM-dd HH:mm:ss.SSSSSS
|
||||
if(length1 - indexOfDot > 4) {
|
||||
// 类似yyyy-MM-dd HH:mm:ss.SSSSSS,采取截断操作
|
||||
dateStr = StrUtil.subPre(dateStr, indexOfDot + 4);
|
||||
}
|
||||
return parse(dateStr, DatePattern.NORM_DATETIME_MS_FORMAT);
|
||||
}
|
||||
// yyyy-MM-dd HH:mm:ss
|
||||
return parse(dateStr, DatePattern.NORM_DATETIME_FORMAT);
|
||||
|
@ -460,18 +460,34 @@ public class DateUtilTest {
|
||||
* 测试支持:yyyy-MM-dd HH:mm:ss.SSSSSS 格式
|
||||
*/
|
||||
@Test
|
||||
public void parseTest9() {
|
||||
public void parseNormFullTest() {
|
||||
String str = "2020-02-06 01:58:00.000020";
|
||||
DateTime dateTime = DateUtil.parse(str);
|
||||
assert dateTime != null;
|
||||
Assert.assertNotNull(dateTime);
|
||||
Assert.assertEquals("2020-02-06 01:58:00.000", dateTime.toString(DatePattern.NORM_DATETIME_MS_PATTERN));
|
||||
|
||||
str = "2020-02-06 01:58:00.00002";
|
||||
dateTime = DateUtil.parse(str);
|
||||
Assert.assertNotNull(dateTime);
|
||||
Assert.assertEquals("2020-02-06 01:58:00.000", dateTime.toString(DatePattern.NORM_DATETIME_MS_PATTERN));
|
||||
|
||||
str = "2020-02-06 01:58:00.111000";
|
||||
dateTime = DateUtil.parse(str);
|
||||
Assert.assertNotNull(dateTime);
|
||||
Assert.assertEquals("2020-02-06 01:58:00.111", dateTime.toString(DatePattern.NORM_DATETIME_MS_PATTERN));
|
||||
|
||||
str = "2020-02-06 01:58:00.111";
|
||||
dateTime = DateUtil.parse(str);
|
||||
Assert.assertNotNull(dateTime);
|
||||
Assert.assertEquals("2020-02-06 01:58:00.111", dateTime.toString(DatePattern.NORM_DATETIME_MS_PATTERN));
|
||||
}
|
||||
|
||||
/**
|
||||
* 测试字符串是空,返回null, 而不是直接报错;
|
||||
*/
|
||||
@Test
|
||||
public void parseTest10() {
|
||||
String str = "";
|
||||
public void parseEmptyTest() {
|
||||
String str = " ";
|
||||
DateTime dateTime = DateUtil.parse(str);
|
||||
Assert.assertNull(dateTime);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user