广告
返回顶部
首页 > 资讯 > 后端开发 > GO >解决Golang time.Parse和time.Format的时区问题
  • 450
分享到

解决Golang time.Parse和time.Format的时区问题

2024-04-02 19:04:59 450人浏览 泡泡鱼
摘要

一、问题描述 在windows下,time.Parse()的时区和time.FORMat()的时区是一致的。 但是在linux环境下,time.Parse()的默认时区是UTC,ti

一、问题描述

windows下,time.Parse()的时区和time.FORMat()的时区是一致的。

但是在linux环境下,time.Parse()的默认时区是UTC,time.Format()的时区默认是本地,两者如果不处理好就会导致错误。


package main
import "time"
import "fmt"
func main(){
    t, err := time.Parse("2006-01-02 15:04:05", "2017-12-03 22:01:02")
    if err != nil{
        fmt.Println(err)
        return
    }
    fmt.Println(t)
    fmt.Println(time.Now())
    fmt.Println(time.Now().Sub(t).Seconds())
}

输出:

2017-12-03 22:01:02 +0000 UTC

2017-12-03 22:15:26.592204446 +0800 CST m=+0.003020091

-27935.407549533

很明显能看到两者的时区不同并且如果把两者时间相减结果也不符合预期。

二、解决方法

使用time.ParseInLocation()而不是time.Parse():


package main
import "time"
import "fmt"
func main(){
    localTime, err := time.ParseInLocation("2006-01-02 15:04:05", "2017-12-03 22:01:02", time.Local)
    if err != nil{
        fmt.Println(err)
        return
    }
    fmt.Println(localTime)
    fmt.Println(time.Now())
    fmt.Println(time.Now().Sub(localTime).Seconds())
}

结果:

2017-12-03 22:01:02 +0800 CST

2017-12-03 22:18:26.288174547 +0800 CST m=+0.001532618

1044.288357362

补充:最自恋的golang的time.Format的坑

我想格式化输出日期


  fmt.
  Println
  (time.
  Now
  ().
  Format
  (
  "2010-10-10 15:04:05"
  ))

结果输出了

9060-60-60 11:11:36

这什么鬼

百度了一个


  fmt.
  Println
  (time.
  Now
  ().
  Format
  (
  "2006-01-02 15:04:05"
  ))

这就输出正确了

2017-06-09 11:12:39

为什么呢,没有问题什么,因为Go语言最自恋最贱,据说那个日期是GO语言的诞生时间,一定要用这个日期格式化

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。如有错误或未考虑完全的地方,望不吝赐教。

您可能感兴趣的文档:

--结束END--

本文标题: 解决Golang time.Parse和time.Format的时区问题

本文链接: https://www.lsjlt.com/news/124938.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 解决Golang time.Parse和time.Format的时区问题
    一、问题描述 在windows下,time.Parse()的时区和time.Format()的时区是一致的。 但是在linux环境下,time.Parse()的默认时区是UTC,ti...
    99+
    2022-11-12
  • golang的时区和神奇的time.Parse的使用方法
    目录时区神奇的time.Parse时区:时区 先写一段测试代码: const TIME_LAYOUT = "2006-01-02 15:04:05" func parseWi...
    99+
    2022-11-12
  • django时区问题的解决
    前言 我们都知道时区,标准时区是UTC时区,django默认使用的就是UTC时区,所以我们存储在数据库中的时间是UTC的时间,但是当我们做的网站只面向国内用户,或者只是提供内部平台...
    99+
    2022-11-12
  • golang select机制和超时问题怎么解决
    这篇文章主要介绍了golang select机制和超时问题怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇golang select机制和超时问题怎么解决文章都会有所收获,下面我们一起...
    99+
    2023-07-02
  • 解决MySQL8.0时区的问题步骤
    软件版本 Windows:Windows10 MySQL:mysql-8.0.16-winx64.zip 问题描述 java将当前时间保存到MySQL数据库时,MySQL中的时间不正确 问题分析 原因...
    99+
    2022-05-15
    MySQL8.0时区 MySQL 时区
  • mysql解决时区相关问题
    前言: 在使用 MySQL 的过程中,你可能会遇到时区相关问题,比如说时间显示错误、时区不是东八区、程序取得的时间和数据库存储的时间不一致等等问题。其实,这些问题都与数据库时区设置有关,本篇文章将从数据库参数入手,逐...
    99+
    2022-05-25
    mysql 时区 mysql 时区问题
  • 如何解决django时区问题
    这篇文章给大家分享的是有关如何解决django时区问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言我们都知道时区,标准时区是UTC时区,django默认使用的就是UTC时区,所以我们存储在数据库中的时间是U...
    99+
    2023-06-15
  • 解决Mybatis的serverTimezone时区出现问题
    目录Mybatis serverTimezone时区出现问题错误信息出现原因解决Mybatis 插件碰到的时区问题及用法Mybatis serverTimezone时区出现问题 错误...
    99+
    2022-11-12
  • Mysql时区问题及解决方法
    MySQL是一种常用的开源关系型数据库,它在处理时间和日期时会受到时区的影响。因此,在使用MySQL时,时区设置容易引发一些错误。本文将介绍MySQL时区问题可能引发的错误,并提供一些解决方案。 错误1:时间不正确 在使用MySQL时,如果...
    99+
    2023-09-05
    mysql 数据库
  • 解决golang post文件时Content-Type出现的问题
    同事用php写了一个接口,要上传文件,让我做下测试,直接用curl命令调用成功,然后想用golang写个示例, 源码如下: package main import ( ...
    99+
    2022-11-12
  • Jenkins安装的时区问题分析解决
    目录一、首先根据官方的方式去修改启动参数二、用另外一种办法,更改系统时区正常情况下,jenkins是Java执行在Java容器,比如tomcat容器之下,只要改了tomcat的时区就...
    99+
    2022-11-13
  • Jenkins安装的时区问题怎么解决
    本篇内容主要讲解“Jenkins安装的时区问题怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Jenkins安装的时区问题怎么解决”吧!正常情况下,jenkins是Java执行在Java容...
    99+
    2023-06-29
  • 使用k8tz解决pod内的时区问题(坑的解决)
    目录使用k8tz优雅的解决pod内的时区问题1.问题简介2.k8tz3.安装k8t4.注入策略坑和解决办法1.helm安装失败2.查看时间的顺序使用k8tz优雅的解决pod内的时区问...
    99+
    2022-11-13
    k8tz时区问题解决 k8tz pod时区
  • 解决MySQL时区日期时差8个小时的问题
    目录场景:解决:mysql查出时间相差14小时问题重现问题排查场景: 我们在mysql客户端查询 now() 系统当前日期时间,会发现得到的结果比系统实际日期时间慢8个小时左右,这是由于不同的时区导致的 解决: 1、在 ...
    99+
    2023-01-04
    MySQL差8个小时 MySQL时区差8个小时
  • 一文解决MySQL时区相关问题
    前言: 在使用MySQL的过程中...
    99+
    2022-10-18
  • Mysql时区错误问题怎么解决
    本文小编为大家详细介绍“Mysql时区错误问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“Mysql时区错误问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。...
    99+
    2022-10-19
  • mysql的timestamp存在时区问题怎么解决
    本篇内容介绍了“mysql的timestamp存在时区问题怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有...
    99+
    2022-10-19
  • 分析和解决golang template失败问题
    Go语言自带的模板引擎template,是一款灵活、高效、易用的模板引擎,它可以快速、简单地生成HTML、XML等格式的文本。但是,有时候我们在使用template过程中,会遇到一些困难和问题,比如template的失败。那么,该如何解决t...
    99+
    2023-05-14
  • mysql的timestamp存在的时区问题怎么解决
    这篇文章主要讲解了“mysql的timestamp存在的时区问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql的timestamp存在的时...
    99+
    2022-10-19
  • Docker Alpine镜像时区问题怎么解决
    这篇文章主要介绍了Docker Alpine镜像时区问题怎么解决,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。最近在使用Docker 部署Java应用时发现时区不对,使用jd...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作