标准库time中的常用时间转换方法

栏目: 服务器 · 发布时间: 5年前

package main

import (
   "fmt"
   "time"
)

func main() {
   //1、指定年月日时分秒,创建一个时间
   oneDay := time.Date(2019, 3,6, 22, 20, 0, 0, time.Local)


   //2、指定当前时间
   oneDay = time.Now()


   //3、输出指定时间oneday的字符串格式,如:20190306222400,年月日时分秒
   //如果要输出如:2019-03-06 22:27:27,则format是:%04d-%02d-%02d %02d:%02d:%02d
   dayStr := fmt.Sprintf("%04d%02d%02d%02d%02d%02d", oneDay.Year(), oneDay.Month(), oneDay.Day(), oneDay.Hour(), oneDay.Minute(), oneDay.Minute())
   fmt.Println(dayStr)
   //还有一种更简单的方式,如:这里的模板时间20060102150405中的时间是固定的,只能是时间2019-04-02 15:04:05的各种组合。
   dayStr1 := oneDay.Format("20060102150405")
   fmt.Println("dayStr1 =", dayStr1)           //dayStr1 = 20190306232012

   //4、将指定时间的字符串,转换成时间Time类型,如,将"2019-04-02 15:04:05"转换成Time类型的值
   //注意:这里layout中的模板,可以随意编写(参考下面layout的各种变形),但时间必须是:2006-01-02 15:04:05,如果模板中用其他值,则最终拿到的结果是不对的。
   layout := "2006-01-02 15:04:05"
   oneTime, _ := time.Parse(layout, "2019-04-02 15:04:05")
   fmt.Println("oneTime=", oneTime)         //oneTime= 2019-04-02 15:04:05 +0000 UTC
   layout = "20060102150405"
   oneTime1, _ := time.Parse(layout, "20190306225000")
   fmt.Println("oneTime1=", oneTime1)    //oneTime1= 2019-03-06 22:50:00 +0000 UTC
   layout = "010220061504"
   oneTime2, _ := time.Parse(layout, "030620192250")
   fmt.Println("oneTime2=", oneTime2)    //oneTime2= 2019-03-06 22:50:00 +0000 UTC


   //5、使用1970到现在的unix时间戳创建一个时间Time
   oneTime3 := time.Unix(1551884600, 0)
   fmt.Println("oneTime3=", oneTime3)    //oneTime3= 2019-03-06 23:03:20 +0800 CST

   //6、返回一个时间的unix时间戳,即秒值
   s := oneTime3.Unix()
   fmt.Println("s=", s)                   //s= 1551884600

   //7、返回一个时间的纳秒时间戳,纳秒时间戳是在unix时间戳后面加9位
   ns := oneTime3.UnixNano()
   fmt.Println("ns=", ns)                 //ns= 1551884600000000000

   //8、返回一个时间前后的日期,这种方法可以前后调整精确的时间
   //返回一个日期三天半后的时间,一天86400秒
   oneTime4 := oneTime3.Add(3.5 * 86400 * time.Second)
   fmt.Println("oneTime4 =", oneTime4)       //oneTime4 = 2019-03-10 11:03:20 +0800 CST
   //返回一个日期三天前的时间,一天86400秒
   oneTime5 := oneTime3.Add(-3 * 86400 * time.Second)
   fmt.Println("oneTime5 =", oneTime5)       //oneTime5 = 2019-03-03 23:03:20 +0800 CST

   //9、给一个时间,增加或减去指定的几年几个月几日,如,给一个时间增加三天,简便方法是
   oneTime6 := oneTime3.AddDate(0, 0, 3)
   fmt.Println("oneTime6 =", oneTime6)       //oneTime6 = 2019-03-09 23:03:20 +0800 CST
   //增加一个月
   oneTime7 := oneTime3.AddDate(0, 1, 0)
   fmt.Println("oneTime7 =", oneTime7)       //oneTime7 = 2019-04-06 23:03:20 +0800 CST

   fmt.Println(oneDay)
}

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

数字化生存

数字化生存

尼葛洛庞帝 / 胡泳 等 / 海南出版社 / 1997-2 / 16.80元

《数字化生存》可以说是二十世纪信息技术及理念发展的圣经,此书的流行和传播对上个世纪信息时代的启蒙、发展产生了深远的影响,本书深入浅出地讲解了信息技术的基本概念、趋势和应用、巨大的价值和数字时代的宏伟蓝图,阐明了信息技术、互联网对时代和人们生活的影响和价值。作者尼葛洛庞帝成为了信息技术投资和趋势分析领域的教父,他的知名度和因此带来的无形价值不可估量。一起来看看 《数字化生存》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码