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

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