查詢出的時間類型的數據是一串數字, 怎么轉化為時間格式格式


數據庫查詢出來的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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM