Goland 时间转换的那些事
Goland 时间转换的那些事
在项目的开发过程中遇到的一个很有意思的时间转换问题
例子
假设有一个需求,是从数据库获取到了一个时间,然后需要把时间延后一天,再返回时间戳
得到伪代码
t := "2022-03-08 23:59:59"
expireTime, _ := time.Parse("2006-01-02 15:04:05", t)
expireTime = expireTime.Add(time.Hour * 24)
fmt.Println(expireTime.Unix())
//输出
1646870399
用时间转换的在线网站对1646870399 进行转换得到
2022-03-10 07:59:59
这于我们理想中的2022-03-09 23:59:59有很大差距
那么问题出现在哪里呢?我们看看time.Parse()这个方法的说明In the absence of a time zone indicator, Parse returns a time in UTC.
就可以知道:在没有时区指示符的情况下,Parse返回UTC时间。
所以得到的打印结果会与理想中有差距
正确的方法
1. 换成time.ParseInLocation来指定时区
t := "2022-03-08 23:59:59"
expireTime, _ := time.ParseInLocation("2006-01-02 15:04:05", t, time.Local)
expireTime = expireTime.Add(time.Hour * 24)
fmt.Println(expireTime.Unix())
//输出
1646841599
//转换后,与理想中的答案一样
2022-03-09 23:59:59
2. 在转换成时间戳的时候指定时区
t := "2022-03-08 23:59:59"
expireTime, _ := time.ParseInLocation("2006-01-02 15:04:05", t, time.Local)
expireTime = expireTime.Add(time.Hour * 24)
fmt.Println(expireTime.Local().Unix())
//输出
1646841599
//转换后,与理想中的答案一样
2022-03-09 23:59:59
Goland 时间转换的那些事的更多相关文章
- [jquery]将当前时间转换成yyyymmdd格式
如题: function nowtime(){//将当前时间转换成yyyymmdd格式 var mydate = new Date(); var str = "" + mydate ...
- MySQL 日期、时间转换函数
MySQL 日期.时间转换函数:date_format(date,format), time_format(time,format) 能够把一个日期/时间转换成各种各样的字符串格式.它是 str_to ...
- java时间类型的转换/获取当前时间/将时间转换成String/将String转换成时间
对于我的脑子,我已经服气了...写了N遍的东西,就是记不住...既然记不住那就记下来... 利用java获取当前的时间(String类型,年-月-日 时:分:秒) //我要获取当前的日期 Date d ...
- inner join ,left join ,right join 以及java时间转换
1.inner join ,left join 与 right join (from 百度知道) 例表aaid adate1 a12 a23 a3表bbid bdate1 ...
- Python基本时间转换
时间转换 python中处理时间的时候,最常用的就是字符形式与时间戳之间的转换. 把最基本的转换在这里记下来 string -> timestamp import time import dat ...
- Date类型时间转换
/* 时间转换start */ public static void main(String args[]) { Date nowTime = new Date(); System.out.print ...
- unix环境C编程之日期时间转换
1.理清概念 1.1.日历时间: 含义:国际标准时间1970年1月1日00:00:00以来经过的秒数. 数据类型:time_t.实际上是long的别名. 1.2.tm结构时间: 含义:结构 ...
- php时间转换unix时间戳
本文介绍了php编程中unix时间戳转换的小例子,有关php时间转换.php时间戳的实例代码,有需要的朋友参考下. 第一部分,php 时间转换unix 时间戳实现代码. 复制代码代码示例: <? ...
- Js 处理将时间转换 “年-月-日”
将时间 \/Date(1432828800000+0800)\/" 转换成:“年-月-日” //时间转换function ChangeDateFormat(val) { if (v ...
随机推荐
- Nodejs ORM框架Sequelize(模型,关联表,事务,循环,及常见问题)
1.建立连接 const Sequelize = require('sequelize'); const sequelize = new Sequelize('database', 'username ...
- java中静态代码块初始化顺序
(一)java 静态代码块 静态方法区别 一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下, ...
- F WebDriver and 环境配置
https://seleniumhq.github.io/docs/wd.html WEBDRIVER The biggest change in Selenium recently has been ...
- SQL注入蠕虫分析//未完待续
蠕虫代码: DECLARE @S VARCHAR(4000);SET @S=CAST(0x4445434C415245204054205641524348415228323535292C4043205 ...
- python中类的初始化案例
1 class Chinese: 2 # 初始化方法的创建,init两边双下划线. 3 def __init__(self, hometown): 4 self.hometown = hometown ...
- docker安装、基本使用、实战(测试必备)
Docker概念.作用.术语 一张超级形象的图 看到这张图,大家会想到什么? 可以这么理解:大海是操作系统,鲸鱼是Docker,集装箱是在Docker 运行的容器! 概念 百度百科:Docker 是一 ...
- 让你的Linux像黑客帝国的画面一样炫酷
#sudo apt-add-repository ppa:hollywood/ppa #sudo apt-get install hollywood #sudo apt-get install ...
- Vue 源码解读(8)—— 编译器 之 解析(上)
特殊说明 由于文章篇幅限制,所以将 Vue 源码解读(8)-- 编译器 之 解析 拆成了上下两篇,所以在阅读本篇文章时请同时打开 Vue 源码解读(8)-- 编译器 之 解析(下)一起阅读. 前言 V ...
- 大数据BI系统是怎么助力企业长久发展的
多元化集团企业在发展到一定阶段后,往往会遇到业务与财务分离.管理缺乏系统决策支持等管理问题.财务决策支持系统建设实施BI是管理升级的内在要求. 1996年,加特纳集团提出了商业智能(Businesin ...
- Linux性能优化实战CPU篇之总结(四)
一.分析CPU瓶颈 1,性能指标 a>CPU使用率 CPU使用率描述了非空闲时间占总CPU时间的百分比,根据CPU上运行任务的不同可以分为:用户CPU.系统CPU.等待I/O CPU.软中断和硬 ...