mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +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);
|
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
|
* ISO8601日期时间格式,精确到毫秒:yyyy-MM-dd HH:mm:ss,SSS
|
||||||
*/
|
*/
|
||||||
|
@ -960,14 +960,15 @@ public class DateUtil extends CalendarUtil {
|
|||||||
// yyyy-MM-dd HH:mm
|
// yyyy-MM-dd HH:mm
|
||||||
return parse(dateStr, DatePattern.NORM_DATETIME_MINUTE_FORMAT);
|
return parse(dateStr, DatePattern.NORM_DATETIME_MINUTE_FORMAT);
|
||||||
case 2:
|
case 2:
|
||||||
if (StrUtil.contains(dateStr, CharUtil.DOT)) {
|
final int indexOfDot = StrUtil.indexOf(dateStr, CharUtil.DOT);
|
||||||
if (dateStr.length() == DatePattern.NORM_DATETIME_MS_PATTERN.length()) {
|
if (indexOfDot > 0) {
|
||||||
// yyyy-MM-dd HH:mm:ss.SSS
|
final int length1 = dateStr.length();
|
||||||
return parse(dateStr, DatePattern.NORM_DATETIME_MS_FORMAT);
|
// yyyy-MM-dd HH:mm:ss.SSS 或者 yyyy-MM-dd HH:mm:ss.SSSSSS
|
||||||
} else {
|
if(length1 - indexOfDot > 4) {
|
||||||
// yyyy-MM-dd HH:mm:ss.SSSSSS
|
// 类似yyyy-MM-dd HH:mm:ss.SSSSSS,采取截断操作
|
||||||
return parse(dateStr, DatePattern.NORM_DATETIME_MS_FULL_FORMAT);
|
dateStr = StrUtil.subPre(dateStr, indexOfDot + 4);
|
||||||
}
|
}
|
||||||
|
return parse(dateStr, DatePattern.NORM_DATETIME_MS_FORMAT);
|
||||||
}
|
}
|
||||||
// yyyy-MM-dd HH:mm:ss
|
// yyyy-MM-dd HH:mm:ss
|
||||||
return parse(dateStr, DatePattern.NORM_DATETIME_FORMAT);
|
return parse(dateStr, DatePattern.NORM_DATETIME_FORMAT);
|
||||||
|
@ -460,18 +460,34 @@ public class DateUtilTest {
|
|||||||
* 测试支持:yyyy-MM-dd HH:mm:ss.SSSSSS 格式
|
* 测试支持:yyyy-MM-dd HH:mm:ss.SSSSSS 格式
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void parseTest9() {
|
public void parseNormFullTest() {
|
||||||
String str = "2020-02-06 01:58:00.000020";
|
String str = "2020-02-06 01:58:00.000020";
|
||||||
DateTime dateTime = DateUtil.parse(str);
|
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, 而不是直接报错;
|
* 测试字符串是空,返回null, 而不是直接报错;
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void parseTest10() {
|
public void parseEmptyTest() {
|
||||||
String str = "";
|
String str = " ";
|
||||||
DateTime dateTime = DateUtil.parse(str);
|
DateTime dateTime = DateUtil.parse(str);
|
||||||
Assert.assertNull(dateTime);
|
Assert.assertNull(dateTime);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user