[Dubbo-4697] Fix PojoUtils support localdatetime,lcaldate,localtime (#5783)
This commit is contained in:
parent
3d329736f9
commit
0f4e60dca3
|
|
@ -21,6 +21,7 @@ import java.math.BigDecimal;
|
|||
import java.math.BigInteger;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
|
|
@ -110,6 +111,18 @@ public class CompatibleTypeUtils {
|
|||
+ DATE_FORMAT + ", cause: " + e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
if (type == java.time.LocalDateTime.class || type == java.time.LocalDate.class
|
||||
|| type == java.time.LocalTime.class) {
|
||||
|
||||
LocalDateTime localDateTime = LocalDateTime.parse(string);
|
||||
if (type == java.time.LocalDate.class) {
|
||||
return localDateTime.toLocalDate();
|
||||
}
|
||||
if (type == java.time.LocalTime.class) {
|
||||
return localDateTime.toLocalTime();
|
||||
}
|
||||
return localDateTime;
|
||||
}
|
||||
if (type == Class.class) {
|
||||
try {
|
||||
return ReflectUtils.name2class(string);
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ import org.junit.jupiter.api.Test;
|
|||
import java.math.BigDecimal;
|
||||
import java.math.BigInteger;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashSet;
|
||||
|
|
@ -77,6 +78,15 @@ public class CompatibleTypeUtilsTest {
|
|||
result = CompatibleTypeUtils.compatibleTypeConvert("2011-12-11 12:24:12", java.sql.Timestamp.class);
|
||||
assertEquals(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format((java.sql.Timestamp) result), "2011-12-11 12:24:12");
|
||||
|
||||
result = CompatibleTypeUtils.compatibleTypeConvert("2011-12-11T12:24:12.047", java.time.LocalDateTime.class);
|
||||
assertEquals(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format((java.time.LocalDateTime) result), "2011-12-11 12:24:12");
|
||||
|
||||
result = CompatibleTypeUtils.compatibleTypeConvert("2011-12-11T12:24:12.047", java.time.LocalTime.class);
|
||||
assertEquals(DateTimeFormatter.ofPattern("HH:mm:ss").format((java.time.LocalTime) result), "12:24:12");
|
||||
|
||||
result = CompatibleTypeUtils.compatibleTypeConvert("2011-12-11T12:24:12.047", java.time.LocalDate.class);
|
||||
assertEquals(DateTimeFormatter.ofPattern("yyyy-MM-dd").format((java.time.LocalDate) result), "2011-12-11");
|
||||
|
||||
result = CompatibleTypeUtils.compatibleTypeConvert("ab", char[].class);
|
||||
assertEquals(2, ((char[]) result).length);
|
||||
assertEquals('a', ((char[]) result)[0]);
|
||||
|
|
|
|||
Loading…
Reference in New Issue