change date converter

This commit is contained in:
Looly 2021-09-24 23:22:31 +08:00
parent 7b6593fe68
commit d243764d51
4 changed files with 37 additions and 19 deletions

View File

@ -10,6 +10,7 @@
* 【http 】 优化Browser版本正则判断 * 【http 】 优化Browser版本正则判断
* 【setting】 增加YamlUtil * 【setting】 增加YamlUtil
* 【extra 】 SenvenZExtractor改名为SevenZExtractor增加getFirst、get方法 * 【extra 】 SenvenZExtractor改名为SevenZExtractor增加getFirst、get方法
* 【core 】 DateConverter修改返回java.util.Date而非DateTimeissue#I4BOAP@Gitee
### 🐞Bug修复 ### 🐞Bug修复
* 【http 】 修复HttpCookie设置cookies的方法不符合RFC6265规范问题pr#418@Gitee * 【http 】 修复HttpCookie设置cookies的方法不符合RFC6265规范问题pr#418@Gitee

View File

@ -13,13 +13,14 @@ import java.util.Calendar;
* 日期转换器 * 日期转换器
* *
* @author Looly * @author Looly
*
*/ */
public class DateConverter extends AbstractConverter<java.util.Date> { public class DateConverter extends AbstractConverter<java.util.Date> {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private final Class<? extends java.util.Date> targetType; private final Class<? extends java.util.Date> targetType;
/** 日期格式化 */ /**
* 日期格式化
*/
private String format; private String format;
/** /**
@ -35,7 +36,7 @@ public class DateConverter extends AbstractConverter<java.util.Date> {
* 构造 * 构造
* *
* @param targetType 目标类型 * @param targetType 目标类型
* @param format 日期格式 * @param format 日期格式
*/ */
public DateConverter(Class<? extends java.util.Date> targetType, String format) { public DateConverter(Class<? extends java.util.Date> targetType, String format) {
this.targetType = targetType; this.targetType = targetType;
@ -74,11 +75,11 @@ public class DateConverter extends AbstractConverter<java.util.Date> {
} else { } else {
// 统一按照字符串处理 // 统一按照字符串处理
final String valueStr = convertToStr(value); final String valueStr = convertToStr(value);
final java.util.Date date = StrUtil.isBlank(this.format) // final DateTime dateTime = StrUtil.isBlank(this.format) //
? DateUtil.parse(valueStr) // ? DateUtil.parse(valueStr) //
: DateUtil.parse(valueStr, this.format); : DateUtil.parse(valueStr, this.format);
if(null != date){ if (null != dateTime) {
return wrap(date); return wrap(dateTime);
} }
} }
@ -87,25 +88,26 @@ public class DateConverter extends AbstractConverter<java.util.Date> {
/** /**
* java.util.Date转为子类型 * java.util.Date转为子类型
*
* @param date Date * @param date Date
* @return 目标类型对象 * @return 目标类型对象
*/ */
private java.util.Date wrap(java.util.Date date){ private java.util.Date wrap(DateTime date) {
// 返回指定类型 // 返回指定类型
if (java.util.Date.class == targetType) { if (java.util.Date.class == targetType) {
return date; return date.toJdkDate();
} }
if (DateTime.class == targetType) { if (DateTime.class == targetType) {
return DateUtil.date(date); return date;
} }
if (java.sql.Date.class == targetType) { if (java.sql.Date.class == targetType) {
return new java.sql.Date(date.getTime()); return date.toSqlDate();
} }
if (java.sql.Time.class == targetType) { if (java.sql.Time.class == targetType) {
return new java.sql.Time(date.getTime()); return new java.sql.Time(date.getTime());
} }
if (java.sql.Timestamp.class == targetType) { if (java.sql.Timestamp.class == targetType) {
return new java.sql.Timestamp(date.getTime()); return date.toTimestamp();
} }
throw new UnsupportedOperationException(StrUtil.format("Unsupported target Date type: {}", this.targetType.getName())); throw new UnsupportedOperationException(StrUtil.format("Unsupported target Date type: {}", this.targetType.getName()));
@ -113,10 +115,11 @@ public class DateConverter extends AbstractConverter<java.util.Date> {
/** /**
* java.util.Date转为子类型 * java.util.Date转为子类型
*
* @param mills Date * @param mills Date
* @return 目标类型对象 * @return 目标类型对象
*/ */
private java.util.Date wrap(long mills){ private java.util.Date wrap(long mills) {
// 返回指定类型 // 返回指定类型
if (java.util.Date.class == targetType) { if (java.util.Date.class == targetType) {
return new java.util.Date(mills); return new java.util.Date(mills);

View File

@ -15,27 +15,27 @@ public class FtpTest {
@Ignore @Ignore
public void cdTest() { public void cdTest() {
Ftp ftp = new Ftp("looly.centos"); Ftp ftp = new Ftp("looly.centos");
ftp.cd("/file/aaa"); ftp.cd("/file/aaa");
Console.log(ftp.pwd()); Console.log(ftp.pwd());
IoUtil.close(ftp); IoUtil.close(ftp);
} }
@Test @Test
@Ignore @Ignore
public void uploadTest() { public void uploadTest() {
Ftp ftp = new Ftp("looly.centos"); Ftp ftp = new Ftp("looly.centos");
List<String> ls = ftp.ls("/file"); List<String> ls = ftp.ls("/file");
Console.log(ls); Console.log(ls);
boolean upload = ftp.upload("/file/aaa", FileUtil.file("E:/qrcodeWithLogo.jpg")); boolean upload = ftp.upload("/file/aaa", FileUtil.file("E:/qrcodeWithLogo.jpg"));
Console.log(upload); Console.log(upload);
IoUtil.close(ftp); IoUtil.close(ftp);
} }
@Test @Test
@Ignore @Ignore
public void reconnectIfTimeoutTest() throws InterruptedException { public void reconnectIfTimeoutTest() throws InterruptedException {

View File

@ -595,4 +595,18 @@ public class JSONObjectTest {
json.putByPath("aa.bb", "BB"); json.putByPath("aa.bb", "BB");
Assert.assertEquals("{\"aa\":{\"bb\":\"BB\"}}", json.toString()); Assert.assertEquals("{\"aa\":{\"bb\":\"BB\"}}", json.toString());
} }
@Test
public void bigDecimalTest(){
String jsonStr = "{\"orderId\":\"1704747698891333662002277\"}";
BigDecimalBean bigDecimalBean = JSONUtil.toBean(jsonStr, BigDecimalBean.class);
Assert.assertEquals("{\"orderId\":1704747698891333662002277}", JSONUtil.toJsonStr(bigDecimalBean));
}
@Data
static
class BigDecimalBean{
private BigDecimal orderId;
}
} }