golang时间字符串和时间戳转换的案例

 更新时间:2020年12月19日 15:37:02   作者:一根烂笔头  
这篇文章主要介绍了golang时间字符串和时间戳转换的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

1. 获取当前时间字符串和时间戳

package main
import (
  "fmt"
  "time"
)
func main() {
  now := time.Now().UTC()
  // 显示时间格式: UnixDate = "Mon Jan _2 15:04:05 MST 2006"
  fmt.Printf("%s\n", now.Format(time.UnixDate))
  // 显示时间戳
  fmt.Printf("%ld\n", now.Unix())
  // 显示时分:Kitchen = "3:04PM"
  fmt.Printf("%s\n", now.Format("3:04PM"))
}

更多时间格式

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"
    RFC822Z   = "02 Jan 06 15:04 -0700" // RFC822 with numeric zone
    RFC850   = "Monday, 02-Jan-06 15:04:05 MST"
    RFC1123   = "Mon, 02 Jan 2006 15:04:05 MST"
    RFC1123Z  = "Mon, 02 Jan 2006 15:04:05 -0700" // RFC1123 with numeric zone
    RFC3339   = "2006-01-02T15:04:05Z07:00"
    RFC3339Nano = "2006-01-02T15:04:05.999999999Z07:00"
    Kitchen   = "3:04PM"
    // Handy time stamps.
    Stamp   = "Jan _2 15:04:05"
    StampMilli = "Jan _2 15:04:05.000"
    StampMicro = "Jan _2 15:04:05.000000"
    StampNano = "Jan _2 15:04:05.000000000"
)

2. 时间字符串解析成时间格式

package main
import (
  "fmt"
  "time"
)
func main() {
  timeStr := "2018-01-01"
  fmt.Println("timeStr:", timeStr)
  t, _ := time.Parse("2006-01-02", timeStr)
  fmt.Println(t.Format(time.UnixDate))
}

3. 获取当天零点时间戳

方法1

package main
import (
  "fmt"
  "time"
)
func main() {
  timeStr := time.Now().Format("2006-01-02")
  t, _ := time.Parse("2006-01-02", timeStr)
  fmt.Println(t.Format(time.UnixDate))
  //Unix返回早八点的时间戳,减去8个小时
  timestamp := t.UTC().Unix() - 8*3600
  fmt.Println("timestamp:", timestamp)
}

方法2

package main
import (
  "fmt"
  "time"
)
func main() {
  now := time.Now()
  t, _ := time.ParseInLocation("2006-01-02", now.Format("2006-01-02"), time.Local)
  timestamp := t.Unix()
  fmt.Println(timestamp)
}
/*
time.Local本地时区
  var Local *Location = &localLoc
以及UTC时区
  var UTC *Location = &utcLoc
还可以替换成指定时区
  //func LoadLocation(name string) (*Location, error)
  loc, _ := time.LoadLocation("Europe/Berlin")
If the name is "" or "UTC", LoadLocation returns UTC. If the name is "Local", LoadLocation returns Local.
*/

补充:Golang中获取当天0点的格式化时间

如下所示:

EndDateLimit := time.Now().Format("2006-01-02 00:00:00")

取当天某个整点的时间戳

now := time.Now().Unix()
muteEndTime := time.Date(time.Now().Year(), time.Now().Month(), time.Now().Day(), 8, 0, 0, 0, time.Local).Unix()
muteStartTime := time.Date(time.Now().Year(), time.Now().Month(), time.Now().Day(), 22, 0, 0, 0, time.Local).Unix()

本地当前时间戳(10位)

fmt.Println(time.Now().Unix()) //1468479251

本地当前时间戳(19位)

fmt.Println(time.Now().UnixNano()) //1468480006774460462

时间戳转时间

fmt.Println(time.Unix(1389058332, 0).Format("2006-01-02 15:04:05")) //2014-01-07 09:32:12

时间转时间戳

fmt.Println(time.Date(2014, 1, 7, 5, 50, 4, 0, time.Local).Unix())

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

相关文章

  • 详解Golang如何实现一个环形缓冲器

    详解Golang如何实现一个环形缓冲器

    环形缓冲器(ringr buffer)是一种用于表示一个固定尺寸、头尾相连的缓冲区的数据结构,适合缓存数据流。本文将利用Golang实现一个环形缓冲器,需要的可以参考一下
    2022-09-09
  • Go语言常见数据结构的实现详解

    Go语言常见数据结构的实现详解

    这篇文章主要为大家学习介绍了Go语言中的常见数据结构(channal、slice和map)的实现,文中的示例代码简洁易懂,需要的可以参考一下
    2023-07-07
  • 一文详解Golang中的errors包

    一文详解Golang中的errors包

    在 Golang 中,errors 包是用于处理错误的标准库, errors 包提供的功能比较简单,使用起来非常方便,接下来就具体讲解一下 errors 包提供的几个函数,感兴趣的小伙伴跟着小编一起来看看吧
    2023-07-07
  • Go语言MD5加密用法实例

    Go语言MD5加密用法实例

    这篇文章主要介绍了Go语言MD5加密用法,实例分析了Go语言MD5加密的使用技巧,需要的朋友可以参考下
    2015-03-03
  • 使用go net实现简单的redis通信协议

    使用go net实现简单的redis通信协议

    本文主要介绍了go net实现简单的redis通信协议,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • golang 的string与[]byte转换方式

    golang 的string与[]byte转换方式

    这篇文章主要介绍了golang 的string与[]byte转换方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • Golang环境搭建及打包和工具链详解

    Golang环境搭建及打包和工具链详解

    这篇文章主要介绍了Golang环境搭建及打包和工具链,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • 使用go xorm来操作mysql的方法实例

    使用go xorm来操作mysql的方法实例

    今天小编就为大家分享一篇关于使用go xorm来操作mysql的方法实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-04-04
  • Golang连接PostgreSQL基本操作的实现

    Golang连接PostgreSQL基本操作的实现

    PostgreSQL是常见的免费的大型关系型数据库,本文主要介绍了Golang连接PostgreSQL基本操作的实现,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02
  • goland Duration 和time的区别说明

    goland Duration 和time的区别说明

    这篇文章主要介绍了goland Duration 和time的区别说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12

最新评论