golang中日期操作之日期格式化及日期转换

 更新时间:2022年11月30日 09:29:59   作者:Leo Han  
在编程中,程序员会经常使用到日期相关操作,下面这篇文章主要给大家介绍了关于golang中日期操作之日期格式化及日期转换的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

golang中并没有像java一样提供类似yyyy-MM-dd HH:mm:ss格式的操作,而是将其定义为golang的诞生时间:

2006-01-02 15:04:05 -0700 MST

注意这在golang的日期格式化里不是一个具体日期,而是格式,这样如果我们需要格式化日期,可以如下操作

timeNow := time.Now()
fmt.Println("yyyy-MM-dd HH:mm:ss" ,timeNow.Format("2006-01-02 15:04:05"))
// 打印: yyyy-MM-dd HH:mm:ss: 2022-05-11 14:24:19

接下来说下Time中的几个方法:

Time.Unix() 获取时间秒数,返回的是unix时间秒

fmt.Println("from 1970-01-01 to now seconds: ",int32(time.Now().Unix()))

Time.Date() 返回年月日:

year,month,day := timeNow.Date()
fmt.Println(year,month,day)
// 注意打印的是: 2022 May 11

Time.AddDate 时间增减:

timeLast := timeNow.AddDate(0,0,-1)
fmt.Println(timeLast.Format("2006-01-02 15:04:05"))

Time.Add 增加指定的时间,可以精确到纳秒

time2 := timeNow.Add(time.Duration(2000*time.Millisecond))
fmt.Println(time2.Format("2006-01-02 15:04:05"))

Time.After 是否在指定时间之后,如果是返回true Time.Before 是否在指定时间之前,如果是返回true time.Parse 按照指定格式将字符串转换为日期:

time2,err := time.Parse("2006-01-02 15:04:05","2022-05-11 15:04:05")
if err != nil {
	fmt.Println(err)
}
fmt.Println(time2.Format("2006-01-02 15:04:05"))

补充:go语言时间和日期的转化

go 语言中使用time.Time表示时间。我们可以通过time.Now函数获取当前的时间对象,然后从时间对象中可以获取到年、月、日、时、分、秒等信息。

package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Now() // 获取当前时间
    fmt.Printf("当前时间:%v\n", t)
    fmt.Println("年", t.Year())
    fmt.Println("月", t.Month())
    fmt.Println("日", t.Day())
    fmt.Println("时", t.Hour())
    fmt.Println("分", t.Minute())
    fmt.Println("秒", t.Second())
}

输出

当前时间:2022-05-19 21:38:39.7367663 +0800 CST m=+0.001805001
年 2022
月 May 
日 19  
时 21  
分 38  

time 包中定义的时间间隔类型的常量如下:

const (
    Nanosecond  Duration = 1
    Microsecond          = 1000 * Nanosecond
    Millisecond          = 1000 * Microsecond
    Second               = 1000 * Millisecond
    Minute               = 60 * Second
    Hour                 = 60 * Minute
)

例如:time.Hour表示1小时,time.Second表示1秒。

总结

到此这篇关于golang中日期操作之日期格式化及日期转换的文章就介绍到这了,更多相关golang日期格式化及转换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Golang-如何判断一个 interface{} 的值是否为 nil

    Golang-如何判断一个 interface{} 的值是否为 nil

    interface 的内部实现包含了两个字段,一个是 type,一个是 data,这篇文章主要介绍了Golang-如何判断一个interface{}的值是否为nil,需要的朋友可以参考下
    2023-05-05
  • GoFrame gtree树形结构的使用技巧示例

    GoFrame gtree树形结构的使用技巧示例

    这篇文章主要为大家介绍了GoFrame gtree树形结构的使用技巧示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • 手把手教你导入Go语言第三方库

    手把手教你导入Go语言第三方库

    本文主要介绍了手把手教你导入Go语言第三方库,通过导入gin包来深入学习,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • golang基础之字符串与int、int64类型互相转换

    golang基础之字符串与int、int64类型互相转换

    这篇文章主要给大家介绍了关于golang基础之字符串与int、int64类型互相转换的相关资料,在Go语言中string转int是一项常见的操作,需要的朋友可以参考下
    2023-07-07
  • golang中的单引号转义问题

    golang中的单引号转义问题

    这篇文章主要介绍了golang中的单引号转义问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Go常问的一些面试题汇总(附答案)

    Go常问的一些面试题汇总(附答案)

    通常我们去面试肯定会有些不错的Golang的面试题目的,所以总结下,让其他Golang开发者也可以查看到,同时也用来检测自己的能力和提醒自己的不足之处,这篇文章主要给大家介绍了关于Go常问的一些面试题以及答案的相关资料,需要的朋友可以参考下
    2023-10-10
  • Go 中实现超时控制的方案

    Go 中实现超时控制的方案

    这篇文章主要介绍了Go 里的超时控制实现方案,本文给大家带来两种解决方案,第一种方案是 Time.After(d Duration),第二种方案是利用 context,go 的 context 功能强大,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2021-10-10
  • GO语言运行环境下载、安装、配置图文教程

    GO语言运行环境下载、安装、配置图文教程

    这篇文章主要介绍了GO语言运行环境下载、安装、配置图文教程,需要的朋友可以参考下
    2017-02-02
  • Go常用标准库之fmt的简介与使用详解

    Go常用标准库之fmt的简介与使用详解

    fmt 是 Go 语言中的一个常用标准库,它用于格式化输入和输出数据,这篇文章主要为大家介绍了fmt的基本使用,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-10-10
  • 解决golang编译提示dial tcp 172.217.160.113:443: connectex: A connection attempt failed(推荐)

    解决golang编译提示dial tcp 172.217.160.113:443: con

    这篇文章主要介绍了解决golang编译提示dial tcp 172.217.160.113:443: connectex: A connection attempt failed,此问题完美解决,需要的朋友可以参考下
    2023-02-02

最新评论