Date类型与String类型转换或转为其他日期格式

2021-12-07 16:32:38 浏览数 (1)

String类型转Date
代码语言:javascript复制
SimpleDateFormat formatter = new SimpleDateFormat( "yyyy-MM-dd ");
//或者是具体到秒
//("yyyy-MM-dd HH:mm:ss")
String s= "2011-07-09 "; 
Date date =  formatter.parse(s);
Date类型转String
代码语言:javascript复制
String date = formatter.format(new Date());//格式化数据
自定义格式获取当前时间
代码语言:javascript复制
SimpleDateFormat fo = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date = fo.format(new Date());
使用第三方工具类进行转化
代码语言:javascript复制
//当前时间
Date date = DateUtil.date();
//当前时间
Date date2 = DateUtil.date(Calendar.getInstance());
//当前时间
Date date3 = DateUtil.date(System.currentTimeMillis());
//当前时间字符串,格式:yyyy-MM-dd HH:mm:ss
String now = DateUtil.now();
//当前日期字符串,格式:yyyy-MM-dd
String today= DateUtil.today();

Hutool工具,使用方法:pom引入或gradle配置

maven:

代码语言:javascript复制
<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.5.2</version>
</dependency>

gradle

代码语言:javascript复制
compile 'cn.hutool:hutool-all:5.5.2'
特殊时间格式转换(EEE MMM dd HH:mm:ss ZZZ yyyy)

有些前端组件会传到后端这种格式,这种格式无法实例化到数据库

代码语言:javascript复制
 String date = "Sat Mar 04 09:54:20 EET 2017";
    LocalDate dateNew = ZonedDateTime
            .parse(date, DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH))
            .toLocalDate();
    java.sql.Date dateParse = java.sql.Date.valueOf(dateNew);
sout:"2017-03-04"

这种方式只会具体到天,暂时我也没有找到可以具体到时分秒的API或方法,有知道的小伙伴可以评论、私信滴滴我,感谢。

从根本上杜绝这种问题

在实体类定义中,定义为date的字段上添加

代码语言:javascript复制
@JsonFormat(timezone = "GMT 8", pattern = "yyyy-MM-dd HH:mm:ss")

并且在其get方法中也添加:

代码语言:javascript复制
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT 08:00")

此时再次获得的该字段的日期格式为yyyy-MM-dd HH:mm:ss

0 人点赞