java 字符串、时间和时间戳之间的转换

谁借莪1个温暖的怀抱¢ 2022-03-12 01:21 948阅读 0赞

目录

    • 前言
    • 字符串转Date
    • 时间转字符串
    • 时间转时间戳
    • 时间戳转时间

前言

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

字符串转Date

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

  1. String str = "2019-3-4 18:07:20";
  2. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  3. 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”即可

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

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

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

时间转字符串

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

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

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

时间转时间戳

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

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

时间戳转时间

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

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

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

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

发表评论

表情:
评论列表 (有 0 条评论,948人围观)

还没有评论,来说两句吧...

相关阅读