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) {
|
private static Instant parseInstant(String s) {
|
||||||
try{
|
try{
|
||||||
if (s.length() > 0 && Character.isDigit(s.charAt(0))) {
|
if (s.length() > 0 && Character.isDigit(s.charAt(0))) {
|
||||||
// assuming UTC instant "2007-12-03T10:15:30.00Z"
|
// assuming "2007-12-03T10:15:30.00Z" UTC instant
|
||||||
return OffsetDateTime.parse(s).toInstant();
|
// 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 {
|
else {
|
||||||
// assuming RFC-1123 value "Tue, 3 Jun 2008 11:05:30 GMT-02:00"
|
// 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);
|
ZonedDateTime zonedDateTime = localDateTime.atZone(zoneId);
|
||||||
return zonedDateTime.toInstant();
|
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