美文网首页
GO语言中的“时间”

GO语言中的“时间”

作者: 木工007 | 来源:发表于2019-07-15 20:23 被阅读0次

引言

        编程中经常会涉及到“时间”的变量,不论c语言库还是go语言包都存在对时间的处理,虽然库函数很丰富但我总是弄混,或者我对“时间”好像有什么“误解”(哈哈,还是不是因为不熟)。

time包

        time包里有一个结构体Time,把所有的情况都转成该结构就容易。因为Time的方法有String(), Format(...),Second(),Unix()等函数来提供你想要的。但怎么从一个字符串或时间戳获取该结构呢?

字符串转Time

  func Parse(layout, value string) (Time, error)

时间戳转Time

func Unix(sec int64, nsec int64) Time

生成特定时间的Time对象

func Date(year int, month Month, day, hour, min, sec, nsec int, loc *Location) Time

t := time.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC) 

 fmt.Printf("Go launched at %s\n", t.Local())

字符串转时间戳

func (tTime) Unix()int64

比如”2019-07-15 22:12:23“,要获取该时间的时间戳。两步,Parse()函数获取Time对象,然后使用Unix()获取时间戳。

const timeStr = "2019-07-15 22:12:23"

t := Parse("2006-01-02 15:04:05",timeStr)

fmt.Println(t.Unix()) //seconds since 1970

时间戳转字符串

func (t Time) String() string

func (t Time) Format(layout string) string

比如将时间戳1563192351转化成字符串。两步,Unix(int64, int64)函数获取Time对象,然后使用String()/Format(string)获取字符串。

const tp = 1136239445

const TimeFormat = "2006-01-02 15:04:05"

t := Unix(tp,0) // set nsec=0 

fmt.Println(t.String()) //"2006-01-02 15:04:05.999999999 -0700 MST"

fmt.Println(t.Format(TimeFormat)) 

格式串类型

const (

    ANSIC       = "Mon Jan _2 15:04:05 2006"   

    UnixDate    = "Mon Jan _2 15:04:05 MST 2006"   

    RubyDate    = "Mon Jan 02 15:04:05 -0700 2006"   

    RFC822      = "02 Jan 06 15:04 MST"

    // RFC822 with numeric zone RFC850      = "Monday, 02-Jan-06 15:04:05 MST"   

    RFC822Z     = "02 Jan 06 15:04 -0700" 

    RFC1123     = "Mon, 02 Jan 2006 15:04:05 MST"

    // RFC1123 with numeric zone RFC3339     = "2006-01-02T15:04:05Z07:00"   

    RFC1123Z    = "Mon, 02 Jan 2006 15:04:05 -0700" 

    RFC3339Nano = "2006-01-02T15:04:05.999999999Z07:00"

    // Handy time stamps. Stamp      = "Jan _2 15:04:05" 

    Kitchen     = "3:04PM" 

    StampMilli = "Jan _2 15:04:05.000"   

    StampMicro = "Jan _2 15:04:05.000000"    StampNano  = "Jan _2 15:04:05.000000000")

引用

GOLANG time包

GOLANG中time用法

相关文章

  • TODO:Go语言goroutine和channel使用

    TODO:Go语言goroutine和channel使用 goroutine是Go语言中的轻量级线程实现,由Go语...

  • Go语言指针

    Go 语言中指针是很容易学习的,Go 语言中使用指针可以更简单的执行一些任务。 接下来让我们来一步步学习 Go 语...

  • Go的内存管理

    本文翻译自Memory Management in Go,介绍了Go语言中内存管理的相关概念。 所有的计算机程序语...

  • GO语言中的“时间”

    引言 编程中经常会涉及到“时间”的变量,不论c语言库还是go语言包都存在对时间的处理,虽然库函数很丰富但我总是弄混...

  • Golang查询SqlServer数据库

    Go语言中查询SqlServer数据库 一、Go语言中查询MsSQL数据库: // main.go package...

  • 2020-07-20

    go 语言中的环境(GOPATH和GOROOT) 对于go语言的新手,理解go语言中的两个环境变量GOROOT和G...

  • 04-Go语言关键字和标识符-指趣学院

    关键字 Go语言中的关键字和C语言中的关键字的含义样, 是指被Go语言赋予特殊含义的单词 Go语言中关键字的特征和...

  • 04GoLang类型转换

    数值类型之间的转换 在C语言中如何转换 1.1隐式转换 1.2显示转换 Go语言中如何转换 在Go语言中只有显示转...

  • cgo

    cgo cgo是用来在Go语言中调用C语言的工具 Go语言调用C语言 简单C语言函数 在Go语言中需要通过impo...

  • 数据类型转换

    数值类型之间的转换 在C语言中如何转换1.隐式转换 2.显示转换 Go语言中如何转换 在Go语言中只有显示转换, ...

网友评论

      本文标题:GO语言中的“时间”

      本文链接:https://www.haomeiwen.com/subject/fqzykctx.html