java 字符串、时间和时间戳之间的转换
目录
- 前言
- 字符串转Date
- 时间转字符串
- 时间转时间戳
- 时间戳转时间
前言
上次在写一个根据时间来查询数据的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 HHss” 换为”yyyy年MM月dd日 HH
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
如果博文的有哪些问题或遇到别的问题请在下方留言
还没有评论,来说两句吧...