go time常用方法

简介: go time常用方法

前言


最近开发项目经常用到go的time包, 照python的略微麻烦一些, 特别是那个layout被无数人吐槽(包括我), 这里整理了一些常用的方法, 有需要的可以了解一下


package main
import (
  "time"
  "fmt"
)
// GetMonthStartAndEndTime 获取月份的起止时间
func GetMonthStartAndEndTime(month time.Month) (start, end int64) {
  t := time.Now()
  start = time.Date(t.Year(), t.Month()+month, 1, 0, 0, 0, 0, t.Location()).Unix()
  end = time.Date(t.Year(), t.Month()+month+1, 0, 0, 0, 0, 0, t.Location()).Unix()
  return
}
func main() {
  // time函数  layout  2006-01-02 15:04:05
  //生成时间
  time.Now()
  time.Now().Unix()
  //时间转换  time.Format  根据更改layout转成任何自己想要的格式化字段
  time.Now().Format("2006-01-02")
  time.Now().Format("200601")
  //格式时间转换为time类型
  a := "20190606"
  b, _ := time.Parse("20060102", a)
  fmt.Println(b.Unix())
  //时间戳转为time类型
  t := time.Unix(time.Now().Unix(), 0)
  fmt.Println(t)
  //time时间操作
  tomrrow := time.Now().AddDate(0, 0, 1) //明天
  time.Now().AddDate(0, -1, 0)           //上月
  //也可以是一段时间
  fmt.Println(t.Add(time.Duration(10) * time.Minute))
  //判断时间前后
  bol1 := t.After(tomrrow)
  bol2 := t.Before(tomrrow)
  fmt.Println(bol1, bol2)
  //计算日期时间差  一般都是跟 Add方法一块使用
  fmt.Println(t.Sub(tomrrow))
  //计算日期离今天间隔几天
  aaa, _ := time.Parse("20060102", a)
  fmt.Println(int64(aaa.Sub(time.Now()).Hours() / 24))
  //获取明天凌晨的时间戳
  t = time.Now()
  zero := time.Date(t.Year(), t.Month(), t.Day()+1, 0, 0, 0, 0, t.Location()).Unix()
  fmt.Println(zero)
  // 获取上月的起止时间
  fmt.Println(GetMonthStartAndEndTime(-1))
}
目录
相关文章
|
7月前
|
安全 Go
时间旅行者的工具箱:Go语言time包解读
时间旅行者的工具箱:Go语言time包解读
93 0
|
2月前
|
SQL 关系型数据库 MySQL
Go语言项目高效对接SQL数据库:实践技巧与方法
在Go语言项目中,与SQL数据库进行对接是一项基础且重要的任务
90 11
|
3月前
|
大数据 Shell Go
GO方法与自定义类型
本文详细介绍了 Go 语言中的自定义数据类型与方法。不同于传统的面向对象编程语言,Go 通过结构体 (`struct`) 和方法 (`method`) 来扩展自定义类型的功能。文章解释了如何定义结构体、创建方法,并探讨了值接收器与指针接收器的区别及应用场景。此外,还介绍了方法的可见性以及接收器的命名惯例。通过具体示例,帮助读者更好地理解和应用这些概念。
|
4月前
|
存储 Ubuntu Go
在Ubuntu 16.04上安装Go 1.6的方法
在Ubuntu 16.04上安装Go 1.6的方法
55 1
|
4月前
|
存储 Ubuntu Go
在Ubuntu 18.04上安装Go的方法
在Ubuntu 18.04上安装Go的方法
69 1
|
4月前
|
存储 Ubuntu Linux
在Ubuntu 14.04上安装Go 1.6的方法
在Ubuntu 14.04上安装Go 1.6的方法
84 1
|
4月前
|
SQL 安全 测试技术
[go 面试] 接口测试的方法与技巧
[go 面试] 接口测试的方法与技巧
|
4月前
|
运维 监控 算法
[go 面试] 优化线上故障排查与性能问题的方法
[go 面试] 优化线上故障排查与性能问题的方法
|
4月前
|
JSON 测试技术 Go
Go Kit中读取原始HTTP请求体的方法
Go Kit中读取原始HTTP请求体的方法
|
4月前
|
缓存 算法 Go