Go语言学习之时间函数使用详解

目录
  • 引言
  • 1. 时间格式化
  • 2. 示例

引言

1946年2月14日,人类历史上公认的第一台现代电子计算机“埃尼阿克”(ENIAC)诞生。

计算机语言时间戳是以1970年1月1日0点为计时起点时间的。计算机诞生为1946年2月14日,而赋予生命力时间是从1970年1月1日0点开始。

Hour 1小时=60分钟

Minute 1分钟=60秒

Second 1秒=1000毫秒

Millsecond 1毫秒=1000微秒

Microsecond 1微秒=1000纳秒

Nanoseco 1纳秒

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

到此这篇关于Go语言学习之时间函数使用详解的文章就介绍到这了,更多相关Go语言时间函数内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Golang 函数执行时间统计装饰器的一个实现详解

    背景 最近在搭一个新项目的架子,在生产环境中,为了能实时的监控程序的运行状态,少不了逻辑执行时间长度的统计.时间统计这个功能实现的期望有下面几点: 实现细节要剥离:时间统计实现的细节不期望在显式的写在主逻辑中.因为主逻辑中的其他逻辑和时间统计的抽象层次不在同一个层级 用于时间统计的代码可复用 统计出来的时间结果是可被处理的. 对并发编程友好 实现思路 统计细节的剥离 最朴素的时间统计的实现,可能是下面这个样子: func f() { startTime := time.Now() logicSt

  • 解决Go语言time包数字与时间相乘的问题

    背景说明: 10 * time.Second //正常数字相乘没错 但是 package main import "time" func main(){ connectTimeout := 10 time.Sleep(time.Second*connectTimeout) } 这样使用会报错 int and time.Duration are different types. You need to convert the int to a time.Duration 原因分析: 原因

  • golang 实现时间戳和时间的转化

    说实话,golang的时间转化还是很麻烦的,最起码比php麻烦很多,上码好好学学一下 package main import ( "time" "fmt" ) func main() { //获取当前时间 t := time.Now() //2018-07-11 15:07:51.8858085 +0800 CST m=+0.004000001 fmt.Println(t) //获取当前时间戳 fmt.Println(t.Unix()) //1531293019 /

  • 一文搞懂Golang 时间和日期相关函数

    目录 一.基本介绍 1.格式化日期时间 2.时间的常量 二.使用介绍 1.内置函数 一.基本介绍 在编程中,程序员会经常使用到日期相关的函数,比如:统计某段代码执行花费的时间等等.在 Go 中,开发者为我们提供了 time 包,用于显示时间以及测量使用(日历的计算采用的是公历),详细信息见:Golang 的标准库 1)time.Time 类型:用于表示时间 package main import ( "fmt" "time" ) func main() { // 查

  • Go中时间与时区问题的深入讲解

    目录 1. 时间与时区 1.1 时间标准 1.2 时区划分 1.3 Local 时间 2. Go 中的时间及序列化 2.1 Go 如何初始化时区 2.2 Go 时间字段的序列化 2.3 Go 结构体中的时间字段序列化 3. 各种环境下设置时区 3.1 在 Linux 中 3.1 在 Docker 中 3.2 在 Kubernetes 中 4. 参考 5.golang时区处理 总结 1. 时间与时区 1.1 时间标准 UTC,世界标准时间,是现在的时间标准,以原子时计时. GMT,格林威治时间,是

  • Go语言学习之时间函数使用详解

    目录 引言 1. 时间格式化 2. 示例 引言 1946年2月14日,人类历史上公认的第一台现代电子计算机“埃尼阿克”(ENIAC)诞生. 计算机语言时间戳是以1970年1月1日0点为计时起点时间的.计算机诞生为1946年2月14日,而赋予生命力时间是从1970年1月1日0点开始. Hour 1小时=60分钟 Minute 1分钟=60秒 Second 1秒=1000毫秒 Millsecond 1毫秒=1000微秒 Microsecond 1微秒=1000纳秒 Nanoseco 1纳秒 1. 时

  • C语言学习进阶篇之万字详解指针与qsort函数

    目录 前言 函数指针 代码一 代码二 函数指针数组 函数指针数组的用途 计算器的基本代码 函数指针实现简单的计算机 函数指针数组实现简单计算机 指向函数指针数组的指针 回调函数 简单的冒泡排序 冒泡排序的优化 qsort函数 qsort函数介绍 qsort实现冒泡排序 qsort排序结构数据 模拟实现qsort函数 写在最后 前言 前面学到了字符指针,指针数组是一个存储指针的数组,数组指针是一个指向函数的指针,数组参数和指针参数.其中不乏有很多需要注意的知识点,例如:&数组名和数组名表示的含义,

  • Go语言学习之数组的用法详解

    目录 引言 一.数组的定义 1. 语法 2. 示例 二.数组的初始化 1. 未初始化的数组 2. 使用初始化列表 3. 省略数组长度 4. 指定索引值的方式来初始化 5. 访问数组元素 6. 根据数组长度遍历数组 三. 访问数组元素 1. 访问数组元素 2. 根据数组长度遍历数组 四.冒泡排序 五.多维数组 1. 二维数组 2. 初始化二维数组 3. 访问二维数组 六.向函数传递数组 1. 形参设定数组大小 2. 形参未设定数组大小 3. 示例 总结 引言 数组是相同数据类型的一组数据的集合,数

  • Go语言学习之反射的用法详解

    目录 1. reflect 包 1.1 获取变量类型 1.2 断言处理类型转换 2. ValueOf 2.1 获取变量值 2.2 类型转换 3. Value.Set 3.1 设置变量值 3.2 示例 4. 结构体反射 4.1 查看结构体字段数量和方法数量 4.2 获取结构体属性 4.3 更改属性值 4.4 Tag原信息处理 5. 函数反射 6. 方法反射 6.1 使用 MethodByName 名称调用方法 6.2 使用 method 索引调用方法 反射指的是运行时动态的获取变量的相关信息 1.

  • Go语言学习之链表的使用详解

    目录 1. 什么是链表 2. 单项链表的基本操作 3. 使用 struct 定义单链表 4. 尾部添加节点 5. 头部插入节点 6. 指定节点后添加新节点 7. 删除节点 1. 什么是链表 链表是一种物理存储单元上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的. 链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成.每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域. 使用链表结构可以避免在使用数组时需要预先知

  • Go语言学习之指针的用法详解

    目录 引言 一.定义结构体 1. 语法格式 2. 示例 二.访问结构体成员 三.结构体作为函数参数 四.结构体指针 总结 引言 Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型 结构体是由一系列具有相同类型或不同类型的数据构成的数据集合 结构体表示一项记录,比如保存图书馆的书籍记录,每本书有以下属性: Title :标题 Author : 作者 Subject:学科 ID:书籍ID 一.定义结构体 1. 语法格式 结构体定义需要使用 type 和 struc

  • C语言学习之关键字的示例详解

    目录 1. 前言 2. 什么是关键字 3. extern-声明外部符号 4. auto-自动 5. typedef-类型重定义(类型重命名) 6. register-寄存器 6.1 存储器 6.2 register关键字的作用 7. static-静态 7.1 static修饰局部变量 7.2 static修饰全局变量 7.3 static修饰函数 1. 前言 大家好,我是努力学习游泳的鱼.关键字,这名字一听,就很关键.而有些关键字,你可能不是很了解,更别谈使用.所以,这篇文章将带你见识常见的关

  • C语言学习之指针的使用详解

    目录 一.指针概念 1.指针变量 2.指针类型 3.二级指针 二.野指针 1.野指针成因 2.规避野指针 三.指针运算 1.指针±整数 2.指针-指针 3.指针关系运算 四.指针数组 1.指针和数组 2.指针数组的概念 五.字符指针 六.数组指针 七.数组传参和指针传参 1.一维数组传参 2.二维数组传参 3.一级指针传参 4.二级指针传参 八.函数指针 九.函数指针数组 十.回调函数 一.指针概念 在学习指针之前我们先要了解一下内存,内存是存储区域,我们可以把内存划分成一个一个的内存单元,最小

  • C语言中调用Swift函数实例详解

    C语言中调用Swift函数实例详解 在Apple官方的<Using Swift with Cocoa and Objectgive-C>一书中详细地介绍了如何在Objective-C中使用Swift的类以及如何在Swift中使用Objective-C中的类.在后半部分也介绍了如何在Swift中使用C函数,不过对于如何在C语言中使用Swift函数却只字未提.这里我就为大家分享一下如何在C语言中调用Swift函数. 我们首先要知道的是,所有Swift函数都属于闭包.其次,Swift函数的调用约定与

  • C语言fgetc和fputc函数用法详解(以字符形式读写文件)

    在C语言中,读写文件比较灵活,既可以每次读写一个字符,也可以读写一个字符串,甚至是任意字节的数据(数据块).本节介绍以字符形式读写文件. 以字符形式读写文件时,每次可以从文件中读取一个字符,或者向文件中写入一个字符.主要使用两个函数,分别是 fgetc() 和 fputc(). 字符读取函数 fgetc fgetc 是 file get char 的缩写,意思是从指定的文件中读取一个字符.fgetc() 的用法为: int fgetc (FILE *fp); fp 为文件指针.fgetc() 读

随机推荐