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