Go语言 时间函数

简介: 引言1946年2月14日,人类历史上公认的第一台现代电子计算机“埃尼阿克”(ENIAC)诞生。计算机语言时间戳是以1970年1月1日0点为计时起点时间的。计算机诞生为1946年2月14日,而赋予生命力时间是从1970年1月1日0点开始。1小时=60分钟 Hour1分钟=60秒 Minute1秒=1000毫秒 Second1毫秒=1000微秒 Millsecond1微秒=1000纳秒 Microsecond1纳秒 Nanoseco

1. 时间格式化


2006/1/02 15:04:05

这个时间必须固定不能更改,否则不能获取正确时间

package main
import (
  "fmt"
  "time"
)
func main() {
  //格式化字符串
  now := time.Now()
  //时间必须固定不能更改,否则不能获取正确时间
  fmt.Println(now.Format("02/1/2006 15:04:05"))
  fmt.Println(now.Format("2006/1/02 15:04"))
  fmt.Println(now.Format("2006/1/02"))
}
//输出结果如下
07/4/2022 21:51:52
2022/4/07 21:51
2022/4/07


2. 示例



  • 对获取的日期进行提取日期并判断是否为会员日

package main
import (
  "fmt"
  "strconv"
  "strings"
  "time"
)
func main() {
  //格式化字符串
  now := time.Now()
  //时间必须固定
  times := now.Format("2006/1/02 15:04:05")
  a := strings.Fields(times)
  fmt.Println(a[0])
  fmt.Println(a[1])
  b := strings.Split(a[0], "/")
  fmt.Println(b[2])
  //判断是否为会员日,奇数为会员日,偶数为非会员日
  c, _ := strconv.Atoi(b[2])
  if c%2 != 0 {
    fmt.Println("会员日")
  } else {
    fmt.Println("非会员日")
  }
}
//输出结果如下
2022/4/07
22:07:42
07
会员日


  • 统计程序执行时间,精确到微秒


package main
import (
  "fmt"
  "time"
)
func main() {
  //使用时间戳统计时间
  start := time.Now().UnixNano()
  sleepTime()
  end := time.Now().UnixNano()
  fmt.Printf("程序执行时间: %d", (end-start)/1000)
}
func sleepTime() {
  time.Sleep(time.Millisecond * 100)
}
//执行结果如下
程序执行时间: 113650
相关文章
|
5天前
|
JSON 测试技术 Go
零值在go语言和初始化数据
【7月更文挑战第10天】本文介绍在Go语言中如何初始化数据,未初始化的变量会有对应的零值:bool为`false`,int为`0`,byte和string为空,pointer、function、interface及channel为`nil`,slice和map也为`nil`。。本文档作为指南,帮助理解Go的数据结构和正确使用它们。
53 22
零值在go语言和初始化数据
|
7天前
|
安全 算法 程序员
在go语言中使用泛型和反射
【7月更文挑战第8天】本文介绍go支持泛型后,提升了代码复用,如操作切片、映射、通道的函数,以及自定义数据结构。 泛型适用于通用数据结构和函数,减少接口使用和类型断言。
69 1
在go语言中使用泛型和反射
|
9天前
|
缓存 编译器 Shell
回顾go语言基础中一些特别的概念
【7月更文挑战第6天】本文介绍Go语言基础涵盖包声明、导入、函数、变量、语句和表达式以及注释。零值可用类型如切片、互斥锁和缓冲,支持预分配容量以优化性能。
40 2
回顾go语言基础中一些特别的概念
|
13天前
|
存储 Go API
一个go语言编码的例子
【7月更文挑战第2天】本文介绍Go语言使用Unicode字符集和UTF-8编码。Go中,`unicode/utf8`包处理编码转换,如`EncodeRune`和`DecodeRune`。`golang.org/x/text`库支持更多编码转换,如GBK到UTF-8。编码规则覆盖7位至21位的不同长度码点。
116 1
一个go语言编码的例子
|
16天前
|
JSON 算法 测试技术
在go语言中调试程序
【6月更文挑战第29天】Go语言内置`testing`包支持单元测试、基准测试和模糊测试。`go test`命令可执行测试,如`-run`选择特定测试,`-bench`运行基准测试,`-fuzz`进行模糊测试。
37 2
在go语言中调试程序
|
6天前
|
JSON Java Go
Go 语言性能优化技巧
在Go语言中优化性能涉及数字字符串转换(如用`strconv.Itoa()`代替`fmt.Sprintf()`)、避免不必要的字符串到字节切片转换、预分配切片容量、使用`strings.Builder`拼接、有效利用并发(`goroutine`和`sync.WaitGroup`)、减少内存分配、对象重用(`sync.Pool`)、无锁编程、I/O缓冲、正则预编译和选择高效的序列化方法。这些策略能显著提升代码执行效率和系统资源利用率。
42 13
|
1天前
|
Cloud Native Java Go
为什么要学习Go语言?
GO logo的核心理念,即简单胜于复杂。使用现代斜体无衬线字体与三条简单的运动线相结合,形成一个类似于快速运动的两个轮子的标记,传达速度和效率。字母的圆形暗示了GO地鼠的眼睛,创造了一个熟悉的形状,让标记和吉祥物很好地搭配在一起。
13 4
|
6天前
|
设计模式 Go
Go语言设计模式:使用Option模式简化类的初始化
在Go语言中,面对构造函数参数过多导致的复杂性问题,可以采用Option模式。Option模式通过函数选项提供灵活的配置,增强了构造函数的可读性和可扩展性。以`Foo`为例,通过定义如`WithName`、`WithAge`、`WithDB`等设置器函数,调用者可以选择性地传递所需参数,避免了记忆参数顺序和类型。这种模式提升了代码的维护性和灵活性,特别是在处理多配置场景时。
41 8
|
7天前
|
前端开发 JavaScript Go
|
5天前
|
存储 Go
go语言中fmt格式化包和内置函数汇总
【7月更文挑战第10天】本文介绍fmt包和`Errorf`用于创建格式化的错误消息。`fmt`包还涉及一些接口,如`Formatter`、`GoStringer`、`ScanState`、`Scanner`和`Stringer`,支持自定义格式化和输入/输出处理。
17 1