@@ -91,19 +91,23 @@ public class DateUtils {
91
91
private static final DateTimeFormatter STRICT_DATE_NO_SPLIT_FORMATTER =
92
92
unixDatetimeStrictFormatter ("%Y%m%e" , true );
93
93
94
- // isTwoDigit, withMs, withSplitT -> formatter
95
- private static final DateTimeFormatter [][][] DATETIME_FORMATTERS = new DateTimeFormatter [2 ][2 ][2 ];
94
+ // isTwoDigit, withMs, withSplitT, withSec -> formatter
95
+ private static final DateTimeFormatter [][][][] DATETIME_FORMATTERS = new DateTimeFormatter [ 2 ] [2 ][2 ][2 ];
96
96
97
97
static {
98
- // isTwoDigit, withMs, withSplitT -> formatter
99
- DATETIME_FORMATTERS [0 ][0 ][0 ] = unixDatetimeStrictFormatter ("%Y-%m-%e %H:%i:%s" , false );
100
- DATETIME_FORMATTERS [0 ][0 ][1 ] = unixDatetimeStrictFormatter ("%Y-%m-%eT%H:%i:%s" , false );
101
- DATETIME_FORMATTERS [0 ][1 ][0 ] = unixDatetimeStrictFormatter ("%Y-%m-%e %H:%i:%s.%f" , false );
102
- DATETIME_FORMATTERS [0 ][1 ][1 ] = unixDatetimeStrictFormatter ("%Y-%m-%eT%H:%i:%s.%f" , false );
103
- DATETIME_FORMATTERS [1 ][0 ][0 ] = unixDatetimeStrictFormatter ("%y-%m-%e %H:%i:%s" , false );
104
- DATETIME_FORMATTERS [1 ][0 ][1 ] = unixDatetimeStrictFormatter ("%y-%m-%eT%H:%i:%s" , false );
105
- DATETIME_FORMATTERS [1 ][1 ][0 ] = unixDatetimeStrictFormatter ("%y-%m-%e %H:%i:%s.%f" , false );
106
- DATETIME_FORMATTERS [1 ][1 ][1 ] = unixDatetimeStrictFormatter ("%y-%m-%eT%H:%i:%s.%f" , false );
98
+ // isTwoDigit, withMs, withSplitT, withSec -> formatter
99
+ DATETIME_FORMATTERS [0 ][0 ][0 ][0 ] = unixDatetimeStrictFormatter ("%Y-%m-%e %H:%i" , false );
100
+ DATETIME_FORMATTERS [0 ][0 ][0 ][1 ] = unixDatetimeStrictFormatter ("%Y-%m-%e %H:%i:%s" , false );
101
+ DATETIME_FORMATTERS [0 ][0 ][1 ][0 ] = unixDatetimeStrictFormatter ("%Y-%m-%eT%H:%i" , false );
102
+ DATETIME_FORMATTERS [0 ][0 ][1 ][1 ] = unixDatetimeStrictFormatter ("%Y-%m-%eT%H:%i:%s" , false );
103
+ DATETIME_FORMATTERS [0 ][1 ][0 ][1 ] = unixDatetimeStrictFormatter ("%Y-%m-%e %H:%i:%s.%f" , false );
104
+ DATETIME_FORMATTERS [0 ][1 ][1 ][1 ] = unixDatetimeStrictFormatter ("%Y-%m-%eT%H:%i:%s.%f" , false );
105
+ DATETIME_FORMATTERS [1 ][0 ][0 ][0 ] = unixDatetimeStrictFormatter ("%y-%m-%e %H:%i" , false );
106
+ DATETIME_FORMATTERS [1 ][0 ][0 ][1 ] = unixDatetimeStrictFormatter ("%y-%m-%e %H:%i:%s" , false );
107
+ DATETIME_FORMATTERS [1 ][0 ][1 ][0 ] = unixDatetimeStrictFormatter ("%y-%m-%eT%H:%i" , false );
108
+ DATETIME_FORMATTERS [1 ][0 ][1 ][1 ] = unixDatetimeStrictFormatter ("%y-%m-%eT%H:%i:%s" , false );
109
+ DATETIME_FORMATTERS [1 ][1 ][0 ][1 ] = unixDatetimeStrictFormatter ("%y-%m-%e %H:%i:%s.%f" , false );
110
+ DATETIME_FORMATTERS [1 ][1 ][1 ][1 ] = unixDatetimeStrictFormatter ("%y-%m-%eT%H:%i:%s.%f" , false );
107
111
}
108
112
109
113
public static String formatDateTimeUnix (LocalDateTime dateTime ) {
@@ -128,9 +132,10 @@ public static LocalDateTime parseStrictDateTime(String str) {
128
132
if (str .contains (":" )) {
129
133
// datetime
130
134
int isTwoDigit = str .split ("-" )[0 ].length () == 2 ? 1 : 0 ;
135
+ int withSec = str .split (":" ).length > 2 ? 1 : 0 ;
131
136
int withMs = str .contains ("." ) ? 1 : 0 ;
132
137
int withSplitT = str .contains ("T" ) ? 1 : 0 ;
133
- DateTimeFormatter formatter = DATETIME_FORMATTERS [isTwoDigit ][withMs ][withSplitT ];
138
+ DateTimeFormatter formatter = DATETIME_FORMATTERS [isTwoDigit ][withMs ][withSplitT ][ withSec ] ;
134
139
return parseStringWithDefaultHSM (str , formatter );
135
140
} else {
136
141
// date
0 commit comments