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

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

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)
}

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

查看所有标签

猜你喜欢:

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

The Filter Bubble

The Filter Bubble

Eli Pariser / Penguin Press / 2011-5-12 / GBP 16.45

In December 2009, Google began customizing its search results for each user. Instead of giving you the most broadly popular result, Google now tries to predict what you are most likely to click on. Ac......一起来看看 《The Filter Bubble》 这本书的介绍吧!

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具