跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • golang xorm 时区问题?请大神指点
未分類
9 1 月 2021

golang xorm 时区问题?请大神指点

golang xorm 时区问题?请大神指点

資深大佬 : sunshinev 4

使用 xom 的 created 自动写入创建时间,发现数据库里面的时间 晚了 8 小时

// 这是数据库里面的记录 2021-01-12 08:14:08   // 这是应该正常的时间 2021-01-12 16:14:08  

然后在服务器上,打印时间相关的信息,发现也都是正常的

log.Printf("time now is %v", time.Now().Format(config.DateTimeLayout)) // 2021-01-12 16:14:08  log.Printf("time e is %+v %+v", *e.TZLocation, *e.DatabaseTZ) // local 信息比较多,但是显示 name:Local  log.Printf("time is %+v", time.Now().Location()) // local 

查看数据库的时区是 CST,也是中国时区

+------------------+--------+ | Variable_name    | Value  | +------------------+--------+ | system_time_zone | CST    | | time_zone        | SYSTEM | +------------------+--------+ 

服务器上 shell,打印出来的时间也是正常的

$ date -R Tue, 12 Jan 2021 16:31:34 +0800 

这么看,好像都是没有问题的,但是就是写入数据库之后,变成了-8 小时

大佬有話說 (2)

  • 主 資深大佬 : sunshinev

    ![8ce5ba258afa45a0cefeeb289ae334dc1610441572.jpg]( https://cdn.jsdelivr.net/gh/sunshinev/remote_pics/8ce5ba258afa45a0cefeeb289ae334dc1610441572.jpg)

    按照官网的文档说 loc 默认是 UTC 的,那出现这种情况,就只能是
    1. 服务器按照 CST 的格式给到 sql 库进行处理
    2. sql 库 把传过来的值按照本地的 timezone CST 转换成 loc 的默认 UTC 来处理 就 -8 个小时
    3. sql 库把记录写入到数据库,就变成了 服务器也是 CST,数据库也是 CST,但是莫名其妙 减去了 8 个小时

  • 資深大佬 : hugo2lee

    数据库链接有没有加 loc=Local

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具