tbel fix_bug tbDate from String without TZ
This commit is contained in:
parent
6c191fd97a
commit
b58befc4a0
@ -490,8 +490,18 @@ public class TbDate implements Serializable, Cloneable {
|
||||
private static Instant parseInstant(String s) {
|
||||
try{
|
||||
if (s.length() > 0 && Character.isDigit(s.charAt(0))) {
|
||||
// assuming UTC instant "2007-12-03T10:15:30.00Z"
|
||||
return OffsetDateTime.parse(s).toInstant();
|
||||
// assuming "2007-12-03T10:15:30.00Z" UTC instant
|
||||
// assuming "2007-12-03T10:15:30.00" ZoneId.systemDefault() instant
|
||||
// assuming "2007-12-03T10:15:30.00-04:00" TZ instant
|
||||
// assuming "2007-12-03T10:15:30.00+04:00" TZ instant
|
||||
Instant inst = validateDateWithTZ(s);
|
||||
if (inst == null) {
|
||||
LocalDateTime dt = LocalDateTime.parse(s);
|
||||
return parseInstant(dt.getYear(), dt.getMonthValue(), dt.getDayOfMonth(), dt.getHour(), dt.getMinute(),
|
||||
dt.getSecond(),dt.getNano()/1000000, ZoneId.systemDefault());
|
||||
} else {
|
||||
return inst;
|
||||
}
|
||||
}
|
||||
else {
|
||||
// assuming RFC-1123 value "Tue, 3 Jun 2008 11:05:30 GMT-02:00"
|
||||
@ -514,4 +524,12 @@ public class TbDate implements Serializable, Cloneable {
|
||||
ZonedDateTime zonedDateTime = localDateTime.atZone(zoneId);
|
||||
return zonedDateTime.toInstant();
|
||||
}
|
||||
|
||||
private static Instant validateDateWithTZ(String s) {
|
||||
try {
|
||||
return OffsetDateTime.parse(s).toInstant();
|
||||
} catch (DateTimeParseException e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user