mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-04-19 03:01:48 +08:00
change date converter
This commit is contained in:
parent
7b6593fe68
commit
d243764d51
@ -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而非DateTime(issue#I4BOAP@Gitee)
|
||||||
|
|
||||||
### 🐞Bug修复
|
### 🐞Bug修复
|
||||||
* 【http 】 修复HttpCookie设置cookies的方法,不符合RFC6265规范问题(pr#418@Gitee)
|
* 【http 】 修复HttpCookie设置cookies的方法,不符合RFC6265规范问题(pr#418@Gitee)
|
||||||
|
@ -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);
|
||||||
|
@ -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 {
|
||||||
|
@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user