zoukankan      html  css  js  c++  java
  • 查询出的时间类型的数据是一串数字, 怎么转化为时间格式格式

    数据库查询出来的sysCreateDate的数据是一串数字1478065615000, 怎么转换为"2016-11-11 05:36:56"的形式呢?

    怎么才能转换为可以认识的数据类型啊? 

    解决方法: 使用@JsonFormat注解

     

    @JsonFormat注解是一个时间格式化注解,比如我们存储在mysql中的数据是date类型的,当我们读取出来封装在实体类中的时候,就会变成英文时间格式,而不是yyyy-MM-dd HH:mm:ss这样的中文时间,因此我们需要用到JsonFormat注解来格式化我们的时间。
    JsonFormat注解是jackson包里面的一个注解,因此在使用的时候需要引入fasterxml maven的jar包,如下所示。
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.9.2</version>
    </dependency>
    
    引入fasterxml maven jar包之后,就可以在实体类属性上面使用@JsonFormat注解了,要注意的是,它只会在类似@ResponseBody返回json数据的时候,才会返回格式化的yyyy-MM-dd HH:mm:ss时间,你直接使用System.out.println()输出的话,仍然是类似“Fri Dec 01 21:05:20 CST 2017”这样的时间样式。
    package demo;
    import java.util.Date;
    import com.fasterxml.jackson.annotation.JsonFormat;
    
    public class Student {
        private int id;
        private String username;
        //在字段上加上下面的这点注解!    
        @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
        private Date createDate;
        
        //getter setter省略。。。
                
    }
    当我们这样@ResponseBody输出json数据的时候,@JsonFormat注解标识的date属性就会自动返回yyyy-MM-dd HH:mm:ss样式的时间了,例如。

    但是问题并没有解决! ,等我解决了再来更新

     

    ======================================== 

    另外一种解决思路: 将注解添加在getter方法上面

    1.可将Date数据类型转换为String。

    2.在pom引入依赖,(Maven)

    <!-- jackson-databind依赖 -->
    <dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.2</version>
    </dependency>


    3. 在Date所在的实体类中找到Date的get方法,在方法上加入@JsonFormat加入注释,这样在获取的时候就能获取到指定时间格式,详细用法请搜索@JsonFormat

    @JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
    public Date getCreateTime() {
    return createTime;
    }

     最终的话, 我是通过一个工具类来实现时间类型的转换的, 可以把mysql的Datetime类型转换为2019-07-09 08:27:20这样的格式

    TimeUtil.java工具类代码如下: 

    package com.bj186.fms.utils;
    
    import org.junit.jupiter.api.Test;
    
    import java.util.Date;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    
    public class TimeUtil {
        /**
         * 将距离1970年的数字时间转换成正常的字符串格式时间;
         * 比如数字时间:"1513345743"
         * 转换后:"2017-12-15 21:49:03"
         *
         * @param time
         * @return
         */
        public static String secondToTime(String time) {
            String dateStr = "1970-1-1 08:00:00";
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            if (time.equals("0")) {
                return "";
            }
            Date miDate;
            String returnstr = "";
            try {
                miDate = sdf.parse(dateStr);
                Object t1 = miDate.getTime();
                long h1 = Long.parseLong(time.toString()) * 1000 + Long.parseLong(t1.toString());
                returnstr = sdf.format(h1);
            } catch (ParseException e) {
                e.printStackTrace();
            }
            return returnstr;
        }
        /**
         * 将字符串时间格式转换成Date时间格式,参数String类型
         * 比如字符串时间:"2017-12-15 21:49:03"
         * 转换后的date时间:Fri Dec 15 21:49:03 CST 2017
         * @param datetime 类型为String
         * @return
         */
        public static Date StringToDate(String datetime){
            //SimpleDateFormat sdFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            SimpleDateFormat sdFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date date = new Date();
            try {
                date = sdFormat.parse(datetime);
            } catch (ParseException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return date;
        }
    }
    

      



     

     

    原文:https://blog.csdn.net/weixin_41891331/article/details/81097326

    原文链接: https://blog.csdn.net/loveyour_1314/article/details/81982874

  • 相关阅读:
    设计模式(8)[JS版]-JavaScript设计模式之如何实现适配器模式???
    JS+CSS实现左右文字滚动
    设计模式(7)[JS版]-JavaScript设计模式之原型模式如何实现???
    如何更聪明地学习:20种让你更高效学习的科学方法
    设计模式(6)[JS版]-JavaScript如何实现抽象工厂模式?
    设计模式(5)[JS版]-JavaScript如何实现工厂方法模式?
    设计模式(4)[JS版]-JavaScript如何实现建造者模式?
    设计模式(3)[JS版]-JavaScript中的构造函数模式是什么?
    PAT A1094 The Largest Generation (25分)
    PAT A1090 Highest Price in Supply Chain (25分)(边界问题)
  • 原文地址:https://www.cnblogs.com/zjulanjian/p/11103602.html
Copyright © 2011-2022 走看看