返回顶部
首页 > 资讯 > 精选 >go语言中time包的函数有哪些
  • 787
分享到

go语言中time包的函数有哪些

2023-07-06 04:07:20 787人浏览 安东尼
摘要

这篇“Go语言中time包的函数有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“go语言中time包的函数有哪些”文章吧

这篇“Go语言中time包的函数有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“go语言中time包的函数有哪些”文章吧。

时间类型

Go语言中,time.Time类型表示时间。我们可以通过time.Now函数获取当前时间的对象,然后从时间对象中获取到年,月,日,时,分,秒等信息,代码如下

// timeDemo 时间对象的年月日时分秒func timeDemo() {now := time.Now() // 获取当前时间fmt.Printf("current time:%v\n", now)year := now.Year()     // 年month := now.Month()   // 月day := now.Day()       // 日hour := now.Hour()     // 小时minute := now.Minute() // 分钟second := now.Second() // 秒fmt.Println(year, month, day, hour, minute, second)}

Location和time zone

Go 语言中使用 location 来映射具体的时区。时区(Time Zone)是根据世界各国家与地区不同的经度而划分的时间定义,全球共分为24个时区。中国差不多跨5个时区,但为了使用方便只用东八时区的标准时即北京时间为准。

下面的示例代码中使用beijing来表示东八区8小时的偏移量,其中time.FixedZone和time.LoadLocation`这两个函数则是用来获取location信息。

// timezoneDemo 时区示例func timezoneDemo() {// 中国没有夏令时,使用一个固定的8小时的UTC时差。// 对于很多其他国家需要考虑夏令时。secondsEastOfUTC := int((8 * time.Hour).Seconds())// FixedZone 返回始终使用给定区域名称和偏移量(UTC 以东秒)的 Location。beijing := time.FixedZone("Beijing Time", secondsEastOfUTC)// 如果当前系统有时区数据库,则可以加载一个位置得到对应的时区// 例如,加载纽约所在的时区newYork, err := time.LoadLocation("America/New_York") // UTC-05:00if err != nil {fmt.Println("load America/New_York location failed", err)return}fmt.Println()// 加载上海所在的时区//shanghai, err := time.LoadLocation("Asia/Shanghai") // UTC+08:00// 加载东京所在的时区//tokyo, err := time.LoadLocation("Asia/Tokyo") // UTC+09:00// 创建时间对象需要指定位置。常用的位置是 time.Local(当地时间) 和 time.UTC(UTC时间)。//timeInLocal := time.Date(2009, 1, 1, 20, 0, 0, 0, time.Local)  // 系统本地时间timeInUTC := time.Date(2009, 1, 1, 12, 0, 0, 0, time.UTC)sameTimeInBeijing := time.Date(2009, 1, 1, 20, 0, 0, 0, beijing)sameTimeInNewYork := time.Date(2009, 1, 1, 7, 0, 0, 0, newYork)// 北京时间(东八区)比UTC早8小时,所以上面两个时间看似差了8小时,但表示的是同一个时间timesAreEqual := timeInUTC.Equal(sameTimeInBeijing)fmt.Println(timesAreEqual)// 纽约(西五区)比UTC晚5小时,所以上面两个时间看似差了5小时,但表示的是同一个时间timesAreEqual = timeInUTC.Equal(sameTimeInNewYork)fmt.Println(timesAreEqual)}

时间间隔

time.Duration是time包定义的一个类型,它代表两个时间点之间经过的时间,以纳秒为单位。time.Duration表示一段时间间隔,可表示的最长时间段大约290年。

Add

func main() {now := time.Now()later := now.Add(time.Hour) // 当前时间加1小时后的时间fmt.Println(later)}

sub

返回一个时间段t-u。如果结果超出了Duration可以表示的最大值/最小值,将返回最大值/最小值。要获取时间点t-d(d为Duration),可以使用t.Add(-d)。

func (t Time) Sub(u Time) Duration

Before

如果t代表的时间点在u之前,返回真;否则返回假

func (t Time) Before(u Time) bool

After

如果t代表的时间点在u之后,返回真;否则返回假。

func (t Time) After(u Time) bool

定时器

使用time.Tick(时间间隔)来设置定时器,定时器的本质上是一个通道(channel)。

unc tickDemo() {ticker := time.Tick(time.Second) //定义一个1秒间隔的定时器for i := range ticker {fmt.Println(i)//每秒都会执行的任务}}

时间格式化

time.FORMat函数能够将一个时间对象格式化输出为指定布局的文本表示形式,需要注意的是 Go 语言中时间格式化的布局不是常见的Y-m-d H:M:S,而是使用 2006-01-02 15:04:05.000(记忆口诀为2006 1 2 3 4 5)。

其中:

2006:年(Y)
01:月(m)
02:日(d)
15:时(H)
04:分(M)
05:秒(S)`

// formatDemo 时间格式化func formatDemo() {now := time.Now()// 格式化的模板为 2006-01-02 15:04:05// 24小时制fmt.Println(now.Format("2006-01-02 15:04:05.000 Mon Jan"))// 12小时制fmt.Println(now.Format("2006-01-02 03:04:05.000 PM Mon Jan"))// 小数点后写0,因为有3个0所以格式化输出的结果也保留3位小数fmt.Println(now.Format("2006/01/02 15:04:05.000")) // 2022/02/27 00:10:42.960// 小数点后写9,会省略末尾可能出现的0fmt.Println(now.Format("2006/01/02 15:04:05.999")) // 2022/02/27 00:10:42.96// 只格式化时分秒部分fmt.Println(now.Format("15:04:05"))// 只格式化日期部分fmt.Println(now.Format("2006.01.02"))}

时间格式化的时间

对于从文本的时间表示中解析出时间对象,time包中提供了time.Parse和time.ParseInLocation两个函数。

其中time.Parse在解析时不需要额外指定时区信息。

// parseDemo 指定时区解析时间func parseDemo() {// 在没有时区指示符的情况下,time.Parse 返回UTC时间timeObj, err := time.Parse("2006/01/02 15:04:05", "2022/10/05 11:25:20")if err != nil {fmt.Println(err)return}fmt.Println(timeObj) // 2022-10-05 11:25:20 +0000 UTC// 在有时区指示符的情况下,time.Parse 返回对应时区的时间表示// RFC3339     = "2006-01-02T15:04:05Z07:00"timeObj, err = time.Parse(time.RFC3339, "2022-10-05T11:25:20+08:00")if err != nil {fmt.Println(err)return}fmt.Println(timeObj) // 2022-10-05 11:25:20 +0800 CST

以上就是关于“go语言中time包的函数有哪些”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。

--结束END--

本文标题: go语言中time包的函数有哪些

本文链接: https://lsjlt.com/news/357745.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • go语言中time包的函数有哪些
    这篇“go语言中time包的函数有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“go语言中time包的函数有哪些”文章吧...
    99+
    2023-07-06
  • go语言中time包的各种函数总结
    目录前言时间类型Location和time zone时间间隔AddsubBeforeAfter定时器时间格式化时间格式化的时间总结前言 在我们开发的过程中,每个项目都需要时间这一类的...
    99+
    2023-05-16
    golang time包 go语言 time go语言time包
  • Go语言中的接口函数打包方式有哪些?
    Go语言作为一种现代化的编程语言,被广泛应用于各种领域。其中,接口函数是一种非常重要的特性,它可以让开发者更加灵活地使用和扩展代码。本文将介绍Go语言中的接口函数打包方式,帮助读者更好地理解和应用这一特性。 一、什么是接口函数 在Go语言中...
    99+
    2023-09-20
    打包 接口 函数
  • Go语言中常用的函数有哪些?
    Go语言中常用的函数有哪些?————探究Go语言中常用的函数及其用法 作为一门流行的静态类型编程语言,Go语言广泛应用于各种领域,如服务器端开发、网络编程、云计算等。在Go语言中,函数...
    99+
    2024-04-02
  • Go语言time包的时间常用操作方法有哪些
    本篇内容主要讲解“Go语言time包的时间常用操作方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Go语言time包的时间常用操作方法有哪些”吧!Now():获取当前本地的时间impor...
    99+
    2023-07-04
  • Go语言中日期包(time包)的具体使用
    目录日期包常用函数定时器打印定时器终止定时器注意事项日期包 常用函数 time.Now(): 获取当前时间 package main import ( "fmt" "...
    99+
    2023-05-19
    Go 日期包 Go time
  • python中time库有哪些函数
    python中常用的time库函数有以下几种time.time()time.time()的作用是返回当前时间戳import timetime_stamp = time.time()ime.localtime()返回一个元组结构化的当前时间i...
    99+
    2024-04-02
  • go语言中方法和函数的区别有哪些
    本文小编为大家详细介绍“go语言中方法和函数的区别有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“go语言中方法和函数的区别有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。区别:1、函数function...
    99+
    2023-07-04
  • Rust语言中的函数有哪些
    本文小编为大家详细介绍“Rust语言中的函数有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“Rust语言中的函数有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。Rust是一门系统编程语言 ,专注于安全 ...
    99+
    2023-06-28
  • Go语言支持的常用函数有哪些?
    Go语言作为一种开源的静态类型编程语言,拥有丰富的标准库和强大的功能。在Go语言中,有许多常用的函数和方法可以帮助我们简化代码,提高编程效率。下面将介绍几个Go语言中常用的函数,并给出...
    99+
    2024-04-02
  • 了解Go语言支持的函数有哪些?
    《了解Go语言支持的函数有哪些?》 Go语言作为一种现代化的编程语言,支持丰富的函数功能,这些函数可以帮助开发人员更高效地编写代码和实现逻辑。本文将介绍Go语言中常用的函数及其示例代码...
    99+
    2024-04-02
  • go语言支持哪些函数
    这篇文章主要介绍“go语言支持哪些函数”,在日常操作中,相信很多人在go语言支持哪些函数问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”go语言支持哪些函数”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!Go...
    99+
    2023-07-04
  • Go语言中的数组有哪些特性?
    在Go语言中,数组是一种固定长度的数据结构,它由相同类型的元素组成,并按照顺序排列。在这篇文章中,我们将深入探讨数组在Go语言中的特性和用法。 数组的定义和初始化 在Go语言中,定义一个数组非常简单,只需要使用以下语法: var ar...
    99+
    2023-07-19
    关键字 框架 数组
  • Go语言中的数据类型有哪些?
    作为一门现代的编程语言,Go语言提供了多种数据类型来支持不同的编程需求。本文将对Go语言中常见的数据类型进行介绍,并附上演示代码。 布尔型(bool) 布尔型数据类型只有两个值:true和false。在Go语言中,布尔型通常用于条件判...
    99+
    2023-08-13
    数据类型 教程 函数
  • go的语言有哪些
    go的语言有基本类型、数组、切片、字典、结构体、接口、函数、通道和接收器。1、基本类型,包括布尔型、整数型、无符号整数型和浮点型等;2、数组,具有固定长度且类型一致的数据结构;3、切片,基于数组实现的,可以从已有的数组或切片中创建;4、字典...
    99+
    2023-07-31
  • Go语言中有哪些支持异步编程的包?
    Go语言是一门非常流行的编程语言,它的高效性和简洁性使得越来越多的程序员选择使用它来开发应用程序。在Go语言中,异步编程是一种非常流行的编程方式。异步编程可以提高程序的性能和响应速度,使得程序能够更好地应对高并发的情况。本文将介绍一些Go语...
    99+
    2023-06-25
    实时 异步编程 npm
  • go语言中数据类型有哪些
    这篇文章将为大家详细讲解有关go语言中数据类型有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。go语言的数据类型有:1、布尔型;2、数值类型(可分为整型和浮点型);3、字符串类型;4、指...
    99+
    2023-06-15
  • Go中的接口函数打包技巧有哪些?
    Go语言的接口是一种非常强大的特性,它允许我们定义一组方法的集合,并且可以在不知道实现细节的情况下对对象进行操作。当我们使用接口时,我们可以编写通用代码,因为我们可以依赖于方法的签名而不是特定的类型。 在本文中,我们将探讨一些在Go中使用接...
    99+
    2023-09-20
    打包 接口 函数
  • go语言中的框架有哪些
    go语言中的框架有哪些?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。操作环境:windows10系统、GO 1.11.2、thinkpad t480电脑。Go 是一个快速增...
    99+
    2023-06-14
  • go语言中好的ide有哪些
    这篇“go语言中好的ide有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“go语言中好的ide有哪些”文章吧。用于go语...
    99+
    2023-07-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作