标准库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)
}

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

查看所有标签

猜你喜欢:

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

Data Structures and Algorithms in Java

Data Structures and Algorithms in Java

Robert Lafore / Sams / 2002-11-06 / USD 64.99

Data Structures and Algorithms in Java, Second Edition is designed to be easy to read and understand although the topic itself is complicated. Algorithms are the procedures that software programs use......一起来看看 《Data Structures and Algorithms in Java》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

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

UNIX 时间戳转换

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试