@@ -50,19 +50,23 @@ public class DateUtils {
50
50
private static final DateTimeFormatter STRICT_DATE_NO_SPLIT_FORMATTER =
51
51
unixDatetimeStrictFormatter ("%Y%m%e" , true );
52
52
53
- // isTwoDigit, withMs, withSplitT -> formatter
54
- private static final DateTimeFormatter [][][] DATETIME_FORMATTERS = new DateTimeFormatter [2 ][2 ][2 ];
53
+ // isTwoDigit, withMs, withSplitT, withSec -> formatter
54
+ private static final DateTimeFormatter [][][][] DATETIME_FORMATTERS = new DateTimeFormatter [ 2 ] [2 ][2 ][2 ];
55
55
56
56
static {
57
- // isTwoDigit, withMs, withSplitT -> formatter
58
- DATETIME_FORMATTERS [0 ][0 ][0 ] = unixDatetimeStrictFormatter ("%Y-%m-%e %H:%i:%s" , false );
59
- DATETIME_FORMATTERS [0 ][0 ][1 ] = unixDatetimeStrictFormatter ("%Y-%m-%eT%H:%i:%s" , false );
60
- DATETIME_FORMATTERS [0 ][1 ][0 ] = unixDatetimeStrictFormatter ("%Y-%m-%e %H:%i:%s.%f" , false );
61
- DATETIME_FORMATTERS [0 ][1 ][1 ] = unixDatetimeStrictFormatter ("%Y-%m-%eT%H:%i:%s.%f" , false );
62
- DATETIME_FORMATTERS [1 ][0 ][0 ] = unixDatetimeStrictFormatter ("%y-%m-%e %H:%i:%s" , false );
63
- DATETIME_FORMATTERS [1 ][0 ][1 ] = unixDatetimeStrictFormatter ("%y-%m-%eT%H:%i:%s" , false );
64
- DATETIME_FORMATTERS [1 ][1 ][0 ] = unixDatetimeStrictFormatter ("%y-%m-%e %H:%i:%s.%f" , false );
65
- DATETIME_FORMATTERS [1 ][1 ][1 ] = unixDatetimeStrictFormatter ("%y-%m-%eT%H:%i:%s.%f" , false );
57
+ // isTwoDigit, withMs, withSplitT, withSec -> formatter
58
+ DATETIME_FORMATTERS [0 ][0 ][0 ][0 ] = unixDatetimeStrictFormatter ("%Y-%m-%e %H:%i" , false );
59
+ DATETIME_FORMATTERS [0 ][0 ][0 ][1 ] = unixDatetimeStrictFormatter ("%Y-%m-%e %H:%i:%s" , false );
60
+ DATETIME_FORMATTERS [0 ][0 ][1 ][0 ] = unixDatetimeStrictFormatter ("%Y-%m-%eT%H:%i" , false );
61
+ DATETIME_FORMATTERS [0 ][0 ][1 ][1 ] = unixDatetimeStrictFormatter ("%Y-%m-%eT%H:%i:%s" , false );
62
+ DATETIME_FORMATTERS [0 ][1 ][0 ][1 ] = unixDatetimeStrictFormatter ("%Y-%m-%e %H:%i:%s.%f" , false );
63
+ DATETIME_FORMATTERS [0 ][1 ][1 ][1 ] = unixDatetimeStrictFormatter ("%Y-%m-%eT%H:%i:%s.%f" , false );
64
+ DATETIME_FORMATTERS [1 ][0 ][0 ][0 ] = unixDatetimeStrictFormatter ("%y-%m-%e %H:%i" , false );
65
+ DATETIME_FORMATTERS [1 ][0 ][0 ][1 ] = unixDatetimeStrictFormatter ("%y-%m-%e %H:%i:%s" , false );
66
+ DATETIME_FORMATTERS [1 ][0 ][1 ][0 ] = unixDatetimeStrictFormatter ("%y-%m-%eT%H:%i" , false );
67
+ DATETIME_FORMATTERS [1 ][0 ][1 ][1 ] = unixDatetimeStrictFormatter ("%y-%m-%eT%H:%i:%s" , false );
68
+ DATETIME_FORMATTERS [1 ][1 ][0 ][1 ] = unixDatetimeStrictFormatter ("%y-%m-%e %H:%i:%s.%f" , false );
69
+ DATETIME_FORMATTERS [1 ][1 ][1 ][1 ] = unixDatetimeStrictFormatter ("%y-%m-%eT%H:%i:%s.%f" , false );
66
70
}
67
71
68
72
public static LocalDateTime parseStrictDateTime (String str ) {
@@ -72,9 +76,10 @@ public static LocalDateTime parseStrictDateTime(String str) {
72
76
if (str .contains (":" )) {
73
77
// datetime
74
78
int isTwoDigit = str .split ("-" )[0 ].length () == 2 ? 1 : 0 ;
79
+ int withSec = str .split (":" ).length > 2 ? 1 : 0 ;
75
80
int withMs = str .contains ("." ) ? 1 : 0 ;
76
81
int withSplitT = str .contains ("T" ) ? 1 : 0 ;
77
- DateTimeFormatter formatter = DATETIME_FORMATTERS [isTwoDigit ][withMs ][withSplitT ];
82
+ DateTimeFormatter formatter = DATETIME_FORMATTERS [isTwoDigit ][withMs ][withSplitT ][ withSec ] ;
78
83
return parseStringWithDefaultHSM (str , formatter );
79
84
} else {
80
85
// date
0 commit comments