java的采坑之旅(1) 字符串、时间和时间戳之间的转换

版权声明:转载请注明出处,谢谢 https://blog.csdn.net/guoqing2016/article/details/88133332

前言

上次在写一个根据时间来查询数据的sql时,为了将前端传来的时间转化为java的Date类型数据,博主搞了差不多2个小时,(博主承认自己很菜)为了不让这种情况再次发生,就有了这个博文的诞生。

字符串转Date

例如 “2019-3-4 18:07:20” 这种时间字符串是可以直接用SimpleDateFormat里的转换方法进行转换的

String str = "2019-3-4 18:07:20";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sdf.parse(str);//Mon Mar 04 18:07:20 CST 2019

如果你的时间字符串为"2019年3月4日 18:07:20"
则要将"yyyy-MM-dd HH:mm:ss" 换为"yyyy年MM月dd日 HH:mm:ss"即可

String str = "2019年3月4日 18:07:20";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
sdf.parse(str);//Mon Mar 04 18:07:20 CST 2019

但是博主由于前端使用的是element的组件库
时间选择器选择后传到后台的时间字符串为"2019-03-02T16:00:00.000Z"这种,则需要使用下面的方法

String str = "2019-03-02T16:00:00.000Z";
str = str.replace("Z", " UTC");//注意是" UTC"
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS Z");
sdf.parse(str);//Sun Mar 03 00:00:00 CST 2019

时间转字符串

Date date =new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sdf.format(date);//"2019-03-04 18:54:58"

也可以只取日期部分或时间部分

Date date =new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
sdf.format(date);//"2019-03-04"
Date date =new Date();
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
sdf.format(date);//18:56:48

时间转时间戳

时间转时间戳可以使用getTime方法直接获取时间的时间戳内容

Date date =new Date();
date.getTime();//1551697897315

时间戳转时间

时间戳转时间时,时间戳的格式必须为Long类型不可为String类型进行转换

String str = "1551697897315";
new Date(str);
/**
Exception in thread "main" java.lang.IllegalArgumentException
**/

如果是String类型进行转换就会出现错误

String str = "1551697897315";
new Date(Long.valueOf(str));//Mon Mar 04 19:11:37 CST 2019
如果博文的有哪些问题或遇到别的问题请在下方留言

猜你喜欢

转载自blog.csdn.net/guoqing2016/article/details/88133332
今日推荐