最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談Mybatis+mysql 存儲Date類型的坑

 更新時間:2020年11月23日 17:27:50   作者:水平則靜  
這篇文章主要介紹了淺談Mybatis+mysql 存儲Date類型的坑,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

場景:

把一個時間字符串轉(zhuǎn)成Date,存進(jìn)Mysql。時間天數(shù)會比實際時間少1天,也可能是小時少了13-14小時

Mysql的時區(qū)是CST(使用語句:show VARIABLES LIKE '%time_zone%'; 查)

先放總結(jié):

修改方法:

1. 修改數(shù)據(jù)庫時區(qū)

2. 在jdbc.url里加后綴 &serverTimezone=GMT%2B8

3. 代碼里設(shè)置時區(qū),給SimpleDateFormat.setTimeZone(...)

例外:new Date() 可以直接存為正確時間,其他的不行。比如我試過,把new Date用sdf轉(zhuǎn)個2次,然后就錯誤了

貼一下測試的一下渣碼

// 1.new Date()直接存數(shù)據(jù)庫則是正確的日期 結(jié)果:√ 190626,數(shù)據(jù)庫存儲正常
//  Date now = new Date();
 
  // 2,new Date()用simpleDateFormat轉(zhuǎn)化為字符串再轉(zhuǎn)為Date。結(jié)果: × 少1天 190625
//  Date now1 = new Date();
//  String tempStr = yyMMddFormatter.format(now1);
//  String tempStrDate = tempStr.split(" ")[0];// 會加上00:00:00
//  Date date = yyMMddFormatter.parse(tempStrDate);
 
  // 3.配置文件加上&serverTimezone=GMT%2B8,√ 正確
 
  // 4. 設(shè)置中國標(biāo)準(zhǔn)時區(qū) UTC+8 結(jié)果:√
//  SimpleDateFormat sdf = new SimpleDateFormat("yyMMdd");
   // 設(shè)置時區(qū): 中國標(biāo)準(zhǔn)時 China Standard Time UTC+08:00 使用GMT+8東8區(qū),結(jié)果:?使用默認(rèn)時區(qū)setTimeZone(TimeZone.getDefault);
//  sdf.setTimeZone(TimeZone.getTimeZone("UTC+8"));
//  System.out.println(sdf.getTimeZone().toString());
//  Date date = sdf.parse(liftMaxDt);
//  System.out.println(sdf.getTimeZone().toString());
//  System.out.println(date);
//
//  Date targetDate = new Date(date.getTime());
//  System.out.println("------------------");
//  System.out.println(targetDate);
 
 
  // 5. 測試毫秒數(shù) new Date(ms);但是要先使用sdf轉(zhuǎn)入?yún)?結(jié)果:× 問題就在于SimpleDateFormat會混亂時區(qū)
//  SimpleDateFormat sdf = new SimpleDateFormat("yyMMdd");
//  Date date = sdf.parse(liftMaxDt);
//  Date targetDate = new Date(date.getTime());
//  System.out.println("使用sdf轉(zhuǎn)換date,在new Date(date.getTime())-----------");
//  System.out.println(targetDate);
 
  // 使用LocalDate.結(jié)果: × 還是少一天
  DateTimeFormatter df = DateTimeFormatter.ofPattern("yyMMdd");
  LocalDate ldt = LocalDate.parse(liftMaxDt, df);
  System.out.println("String類型的時間轉(zhuǎn)成LocalDateTime:"+ldt);
  // LocalDate轉(zhuǎn)LocalDateTime
  LocalDateTime lll = LocalDateTime.of(ldt, LocalTime.of(0,0,0));
  ZoneId zone = ZoneId.systemDefault();
  Instant instant = lll.atZone(zone).toInstant();
  Date targetDate = Date.from(instant);
 
  // 將對象里時間屬性設(shè)置為String,數(shù)據(jù)庫里仍然用Date,用數(shù)據(jù)庫的時間函數(shù)轉(zhuǎn)化

最后,還是采用的數(shù)據(jù)庫為timestamp類型,用mysql的時間函數(shù)進(jìn)行轉(zhuǎn)換,保證時間為數(shù)據(jù)庫時間

補(bǔ)充知識:mybatis解決java中的date類型存入oracle數(shù)據(jù)庫之后不顯示時分秒

實體類中類型為java.util.Date

private Date update_date;

數(shù)據(jù)庫中對應(yīng)字段的類型為Date

不顯示 時分秒 的情況:

Mapping文件中對應(yīng)字段的jdbcType為DATE類型

如果顯示時分秒的話,只需要將Mapping文件中對應(yīng)字段的類型改為TIMESTAMP即可.

以上這篇淺談Mybatis+mysql 存儲Date類型的坑就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 如何將Java對象轉(zhuǎn)換為JSON實例詳解

    如何將Java對象轉(zhuǎn)換為JSON實例詳解

    有時候需要將對象轉(zhuǎn)換為JSON格式,所以這篇文章主要給大家介紹了關(guān)于如何將Java對象轉(zhuǎn)換為JSON的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • Java?超詳細(xì)講解字符流

    Java?超詳細(xì)講解字符流

    字符流就是在字節(jié)流的基礎(chǔ)上,加上編碼,形成的數(shù)據(jù)流,字符流出現(xiàn)的意義是因為字節(jié)流在操作字符時,可能會有中文導(dǎo)致的亂碼,所以由字節(jié)流引申出了字符流
    2022-04-04
  • 使用mybatis的interceptor修改執(zhí)行sql以及傳入?yún)?shù)方式

    使用mybatis的interceptor修改執(zhí)行sql以及傳入?yún)?shù)方式

    這篇文章主要介紹了使用mybatis的interceptor修改執(zhí)行sql以及傳入?yún)?shù)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • 如何在Springboot實現(xiàn)攔截器功能

    如何在Springboot實現(xiàn)攔截器功能

    其實spring boot攔截器的配置方式和springMVC差不多,只有一些小的改變需要注意下就ok了,下面這篇文章主要給大家介紹了關(guān)于如何在Springboot實現(xiàn)攔截器功能的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • Java中RabbitMQ延遲隊列實現(xiàn)詳解

    Java中RabbitMQ延遲隊列實現(xiàn)詳解

    這篇文章主要介紹了Java中RabbitMQ延遲隊列實現(xiàn)詳解,消息過期后,根據(jù)routing-key的不同,又會被死信交換機(jī)路由到不同的死信隊列中,消費(fèi)者只需要監(jiān)聽對應(yīng)的死信隊列進(jìn)行消費(fèi)即可,需要的朋友可以參考下
    2023-09-09
  • 使用Java反射獲取方法的全路徑名稱的步驟

    使用Java反射獲取方法的全路徑名稱的步驟

    Java反射是一個強(qiáng)大的特性,它允許程序在運(yùn)行時查詢和修改類的行為,反射可以用于實現(xiàn)很多高級功能,比如動態(tài)代理、依賴注入等,本文將介紹如何使用Java反射來實現(xiàn)這一功能,需要的朋友可以參考下
    2024-07-07
  • 最新hadoop安裝教程及hadoop的命令使用(親測可用)

    最新hadoop安裝教程及hadoop的命令使用(親測可用)

    這篇文章主要介紹了最新hadoop安裝教程(親測可用),本文主要講解了如何安裝hadoop、使用hadoop的命令及遇到的問題解決,需要的朋友可以參考下
    2022-06-06
  • Java編程實現(xiàn)springMVC簡單登錄實例

    Java編程實現(xiàn)springMVC簡單登錄實例

    這篇文章主要介紹了Java編程實現(xiàn)springMVC簡單登錄實例,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • Java中使用patchca生成超炫的驗證碼

    Java中使用patchca生成超炫的驗證碼

    這篇文章主要介紹了Java中使用patchca生成超炫的驗證碼 的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • 通過代碼示例了解submit與execute的區(qū)別

    通過代碼示例了解submit與execute的區(qū)別

    這篇文章主要介紹了通過代碼示例了解submit與execute的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-09-09

最新評論

上虞市| 吉木萨尔县| 东乌| 义乌市| 英山县| 秭归县| 沁水县| 辽中县| 寿宁县| 三台县| 涿州市| 闽清县| 临安市| 莱州市| 随州市| 新昌县| 通许县| 九寨沟县| 北海市| 方山县| 武穴市| 东海县| 吴江市| 江安县| 黔南| 松江区| 海林市| 和顺县| 四会市| 新建县| 西畴县| 镇康县| 全椒县| 古浪县| 揭阳市| 金昌市| 武冈市| 台中市| 来安县| 宝丰县| 泌阳县|