@@ -72,19 +72,23 @@ public class DateUtils {
72
72
private static final DateTimeFormatter STRICT_DATE_NO_SPLIT_FORMATTER =
73
73
unixDatetimeStrictFormatter ("%Y%m%e" , true );
74
74
75
- // isTwoDigit, withMs, withSplitT -> formatter
76
- private static final DateTimeFormatter [][][] DATETIME_FORMATTERS = new DateTimeFormatter [2 ][2 ][2 ];
75
+ // isTwoDigit, withMs, withSplitT, withSec -> formatter
76
+ private static final DateTimeFormatter [][][][] DATETIME_FORMATTERS = new DateTimeFormatter [ 2 ] [2 ][2 ][2 ];
77
77
78
78
static {
79
- // isTwoDigit, withMs, withSplitT -> formatter
80
- DATETIME_FORMATTERS [0 ][0 ][0 ] = unixDatetimeStrictFormatter ("%Y-%m-%e %H:%i:%s" , false );
81
- DATETIME_FORMATTERS [0 ][0 ][1 ] = unixDatetimeStrictFormatter ("%Y-%m-%eT%H:%i:%s" , false );
82
- DATETIME_FORMATTERS [0 ][1 ][0 ] = unixDatetimeStrictFormatter ("%Y-%m-%e %H:%i:%s.%f" , false );
83
- DATETIME_FORMATTERS [0 ][1 ][1 ] = unixDatetimeStrictFormatter ("%Y-%m-%eT%H:%i:%s.%f" , false );
84
- DATETIME_FORMATTERS [1 ][0 ][0 ] = unixDatetimeStrictFormatter ("%y-%m-%e %H:%i:%s" , false );
85
- DATETIME_FORMATTERS [1 ][0 ][1 ] = unixDatetimeStrictFormatter ("%y-%m-%eT%H:%i:%s" , false );
86
- DATETIME_FORMATTERS [1 ][1 ][0 ] = unixDatetimeStrictFormatter ("%y-%m-%e %H:%i:%s.%f" , false );
87
- DATETIME_FORMATTERS [1 ][1 ][1 ] = unixDatetimeStrictFormatter ("%y-%m-%eT%H:%i:%s.%f" , false );
79
+ // isTwoDigit, withMs, withSplitT, withSec -> formatter
80
+ DATETIME_FORMATTERS [0 ][0 ][0 ][0 ] = unixDatetimeStrictFormatter ("%Y-%m-%e %H:%i" , false );
81
+ DATETIME_FORMATTERS [0 ][0 ][0 ][1 ] = unixDatetimeStrictFormatter ("%Y-%m-%e %H:%i:%s" , false );
82
+ DATETIME_FORMATTERS [0 ][0 ][1 ][0 ] = unixDatetimeStrictFormatter ("%Y-%m-%eT%H:%i" , false );
83
+ DATETIME_FORMATTERS [0 ][0 ][1 ][1 ] = unixDatetimeStrictFormatter ("%Y-%m-%eT%H:%i:%s" , false );
84
+ DATETIME_FORMATTERS [0 ][1 ][0 ][1 ] = unixDatetimeStrictFormatter ("%Y-%m-%e %H:%i:%s.%f" , false );
85
+ DATETIME_FORMATTERS [0 ][1 ][1 ][1 ] = unixDatetimeStrictFormatter ("%Y-%m-%eT%H:%i:%s.%f" , false );
86
+ DATETIME_FORMATTERS [1 ][0 ][0 ][0 ] = unixDatetimeStrictFormatter ("%y-%m-%e %H:%i" , false );
87
+ DATETIME_FORMATTERS [1 ][0 ][0 ][1 ] = unixDatetimeStrictFormatter ("%y-%m-%e %H:%i:%s" , false );
88
+ DATETIME_FORMATTERS [1 ][0 ][1 ][0 ] = unixDatetimeStrictFormatter ("%y-%m-%eT%H:%i" , false );
89
+ DATETIME_FORMATTERS [1 ][0 ][1 ][1 ] = unixDatetimeStrictFormatter ("%y-%m-%eT%H:%i:%s" , false );
90
+ DATETIME_FORMATTERS [1 ][1 ][0 ][1 ] = unixDatetimeStrictFormatter ("%y-%m-%e %H:%i:%s.%f" , false );
91
+ DATETIME_FORMATTERS [1 ][1 ][1 ][1 ] = unixDatetimeStrictFormatter ("%y-%m-%eT%H:%i:%s.%f" , false );
88
92
}
89
93
90
94
public static LocalDateTime parseStrictDateTime (String str ) {
@@ -94,9 +98,10 @@ public static LocalDateTime parseStrictDateTime(String str) {
94
98
if (str .contains (":" )) {
95
99
// datetime
96
100
int isTwoDigit = str .split ("-" )[0 ].length () == 2 ? 1 : 0 ;
101
+ int withSec = str .split (":" ).length > 2 ? 1 : 0 ;
97
102
int withMs = str .contains ("." ) ? 1 : 0 ;
98
103
int withSplitT = str .contains ("T" ) ? 1 : 0 ;
99
- DateTimeFormatter formatter = DATETIME_FORMATTERS [isTwoDigit ][withMs ][withSplitT ];
104
+ DateTimeFormatter formatter = DATETIME_FORMATTERS [isTwoDigit ][withMs ][withSplitT ][ withSec ] ;
100
105
return parseStringWithDefaultHSM (str , formatter );
101
106
} else {
102
107
// date
0 commit comments