Go语言时间包time中的可用函数和方法 定义 总结和使用示例

Go语言时间包time中的可用函数和方法

Constants 时间常量 这个就是常用的时间格式布局的常量定义

这个在我们对时间进行解析或者转换为字符串是非常重要, 如果是下面的这些类型之一的可用直接 time.XXX 就可使用, 如常见的标准时间格式 年月日时分秒(2006-01-02 15:04:05) 我们可以直接 time.DateTime 即可。

const (Layout      = "01/02 03:04:05PM '06 -0700" // The reference time, in numerical order.ANSIC       = "Mon Jan _2 15:04:05 2006"UnixDate    = "Mon Jan _2 15:04:05 MST 2006"RubyDate    = "Mon Jan 02 15:04:05 -0700 2006"RFC822      = "02 Jan 06 15:04 MST"RFC822Z     = "02 Jan 06 15:04 -0700" // RFC822 with numeric zoneRFC850      = "Monday, 02-Jan-06 15:04:05 MST"RFC1123     = "Mon, 02 Jan 2006 15:04:05 MST"RFC1123Z    = "Mon, 02 Jan 2006 15:04:05 -0700" // RFC1123 with numeric zoneRFC3339     = "2006-01-02T15:04:05Z07:00"RFC3339Nano = "2006-01-02T15:04:05.999999999Z07:00"Kitchen     = "3:04PM"// Handy time stamps.Stamp      = "Jan _2 15:04:05"StampMilli = "Jan _2 15:04:05.000"StampMicro = "Jan _2 15:04:05.000000"StampNano  = "Jan _2 15:04:05.000000000"DateTime   = "2006-01-02 15:04:05"DateOnly   = "2006-01-02"TimeOnly   = "15:04:05"
)

这个后面就是time包里面提供的函数 , 类型定义和方法定义了

这些函数和方法使用也很简单, 看函数就大概知道是用来干什么的。 不清楚的还可以查看相关的使用示例,地址 https://pkg.go.dev/time@go1.22.4#pkg-examples

  • func After(d Duration) <-chan Time
  • func Sleep(d Duration) 休眠 函数,这个不用说了,非常常用,用于让程序休眠指定的时间
  • 如:让代码休眠1秒钟:
time.Sleep(time.Duration(time.Second * 1))
// 这里的 time.Second 是一个常量 他其实就是一个数字,其他几个相关的常量定义如下
// const (
// 	Nanosecond  Duration = 1
// 	Microsecond          = 1000 * Nanosecond
// 	Millisecond          = 1000 * Microsecond
// 	Second               = 1000 * Millisecond
// 	Minute               = 60 * Second
// 	Hour                 = 60 * Minute
// )

这里有一点需要注意, 如果我么传递的时间数字是一个变量,则需要使用 time.Duration(变量名)来转换一下后才可以做运算。
如:

	seconds := 10fmt.Print(time.Duration(seconds)*time.Second) // prints 10s
  • func Tick(d Duration) <-chan Time

type Duration 持续时间类型, 这个也是一个很常用的类型

    • func ParseDuration(s string) (Duration, error)
    • func Since(t Time) Duration
    • func Until(t Time) Duration
    • func (d Duration) Abs() Duration
    • func (d Duration) Hours() float64
    • func (d Duration) Microseconds() int64
    • func (d Duration) Milliseconds() int64
    • func (d Duration) Minutes() float64
    • func (d Duration) Nanoseconds() int64
    • func (d Duration) Round(m Duration) Duration
    • func (d Duration) Seconds() float64
    • func (d Duration) String() string
    • func (d Duration) Truncate(m Duration) Duration
  • type Location 本地时间类型
    • func FixedZone(name string, offset int) *Location
    • func LoadLocation(name string) (*Location, error)
    • func LoadLocationFromTZData(name string, data ]byte) (*Location, error)
    • func (l *Location) String() string
  • type Month
    • func (m Month) String() string
  • type ParseError
    • func (e *ParseError) Error() string

type Ticker 断续器类型

    • ** func NewTicker(d Duration) *Ticker ** 这个也很常用,用于创建一个带通道的每隔一定时间就输出的断续器
      使用示例:

      package mainimport ("fmt""time"
      )func main() {ticker := time.NewTicker(time.Second)defer ticker.Stop()done := make(chan bool)go func() {time.Sleep(10 * time.Second)done <- true}()for {select {case <-done:fmt.Println("Done!")returncase t := <-ticker.C:fmt.Println("Current time: ", t)}}
      }
      

``

    • func (t *Ticker) Reset(d Duration)
    • func (t *Ticker) Stop()

type Time 时间对象类型

    • func Date(year int, month Month, day, hour, min, sec, nsec int, loc *Location) Time
    • func Now() Time 这个函数应该是使用最为频繁的一个了,获取当前时间对象
    • func Parse(layout, value string) (Time, error) 这个是时间解析函数 用于将字符串转换为时间对象。
    • func ParseInLocation(layout, value string, loc *Location) (Time, error)
    • func Unix(sec int64, nsec int64) Time
    • func UnixMicro(usec int64) Time
    • func UnixMilli(msec int64) Time
    • 以下这些都是时间对象的方法,很简单,看名字就知道是干什么用的 这里就不做过多解释了。
    • 有一点提醒大家注意的是,这里的时间对象 Time是标准类型不是*指针类型哦!
    • func (t Time) Add(d Duration) Time
    • func (t Time) AddDate(years int, months int, days int) Time
    • func (t Time) After(u Time) bool
    • func (t Time) AppendFormat(b ]byte, layout string) ]byte
    • func (t Time) Before(u Time) bool
    • func (t Time) Clock() (hour, min, sec int)
    • func (t Time) Compare(u Time) int
    • func (t Time) Date() (year int, month Month, day int)
    • func (t Time) Day() int
    • func (t Time) Equal(u Time) bool
    • func (t Time) Format(layout string) string 时间对象转换为字符串方法
    • func (t Time) GoString() string
    • func (t *Time) GobDecode(data ]byte) error
    • func (t Time) GobEncode() (]byte, error)
    • func (t Time) Hour() int
    • func (t Time) ISOWeek() (year, week int)
    • func (t Time) In(loc *Location) Time
    • func (t Time) IsDST() bool
    • func (t Time) IsZero() bool 这个方法是专门用来判断Time对象是否为空的,注意了,Time对象的零值很特别!!!
    • func (t Time) Local() Time
    • func (t Time) Location() *Location
    • func (t Time) MarshalBinary() (]byte, error)
    • func (t Time) MarshalJSON() (]byte, error)
    • func (t Time) MarshalText() (]byte, error)
    • func (t Time) Minute() int
    • func (t Time) Month() Month
    • func (t Time) Nanosecond() int
    • func (t Time) Round(d Duration) Time
    • func (t Time) Second() int
    • func (t Time) String() string
    • func (t Time) Sub(u Time) Duration
    • func (t Time) Truncate(d Duration) Time
    • func (t Time) UTC() Time
    • func (t Time) Unix() int64
    • func (t Time) UnixMicro() int64
    • func (t Time) UnixMilli() int64
    • func (t Time) UnixNano() int64
    • func (t *Time) UnmarshalBinary(data ]byte) error
    • func (t *Time) UnmarshalJSON(data ]byte) error
    • func (t *Time) UnmarshalText(data ]byte) error
    • func (t Time) Weekday() Weekday
    • func (t Time) Year() int
    • func (t Time) YearDay() int
    • func (t Time) Zone() (name string, offset int)
    • func (t Time) ZoneBounds() (start, end Time)

type Timer 定时器类型

    • func AfterFunc(d Duration, f func()) *Timer
    • *func NewTimer(d Duration) Timer 新建一个在指定的时间后执行一次的定时器函数, 注意这个只会在你指定的时间执行一次, 而 NewTicker创建的 Ticker 则是在你指定的时间间隔上不停地重复执行
    • func (t *Timer) Reset(d Duration) bool
    • func (t *Timer) Stop() bool
  • type Weekday

    • func (d Weekday) String() string

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/36535.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FlinkX学习

FlinkX学习 FlinkX安装 由于flinkx已经改名chunjun 官网已不存在 (https://gitee.com/lugela/flinkx#flinkx)这里可以看到flinkx的操作文档 1、上传并解压 unzip flinkx-1.10.zip -d /usr/local/soft/2、配置环境变量 FLINKX_HOME/usr/local/soft/flinkx-1.10 export PATH$F…

APP提交到AppStore时报错Asset validation failed (90161)

使用XCode打包并上传到App Store Connect时&#xff0c;收到 “Asset validation failed (90161): Invalid Provisioning Profile” 错误&#xff0c;表明你在上传应用程序到 App Store Connect 时使用了错误的配置文件。以下是解决这个问题的详细步骤&#xff1a; 步骤1&…

STL-迭代器

1.迭代器 1.1正向迭代器 正向迭代器是用一个类封装的&#xff0c;迭代器类。例如&#xff1a;在vector&#xff0c;string中的迭代器就相当于一个指针&#xff0c;在list类中用一个类来封装一个节点&#xff0c;实质上也还是一个指针&#xff0c;迭代器就相当于指向一个节点的…

AUTOSAR的基础软件和功能

AUTOSAR的基础软件和功能 AUTOSAR&#xff08;Automotive Open System Architecture&#xff09;是一个开放且标准化的软件架构&#xff0c;旨在为汽车电子控制单元&#xff08;ECU&#xff09;创建一个可复用和模块化的软件基础。AUTOSAR的基础软件&#xff08;Basic Softwar…

网络构建和设计方法_3. 网络设计

1.层次化网络模型设计 层次化网络设计模型&#xff0c;可帮助设计者按照层次设计网络架构&#xff0c;并对不同层次赋予特定网络功能&#xff0c;选择适合的设备/系统。在典型层次化网络结构中&#xff0c;核心层通常选用具备高可用性和性能优化的高端路由器/交换机&#xff1b…

背靠广汽、小马智行,如祺出行打得过滴滴和百度吗?

©自象限原创 作者丨艾AA 编辑丨薛黎 北京时间6月14日凌晨&#xff0c;在特斯拉股东大会上&#xff0c;马斯克阐述了对Robotaxi&#xff08;自动驾驶出租车&#xff09;商业模式的构想——特斯拉不仅会运营自己的无人驾驶出租车车队&#xff0c;还可以让特斯拉车主们的爱…

微服务开发 —— 项目环境搭建篇

环境搭建 Linux 环境搭建 Linux 环境搭建大家可以使用虚拟机 VMware、VirtualBox 等应用创建虚拟机&#xff0c;使用Vagrant也可以快捷搭建虚拟环境&#xff1b;Windows 中有 WSL2&#xff0c;Windows 中的 Docker 也对 WSL 进行了支持&#xff0c;也是一个不错的选择。或者可…

Windows - 像Linux一样使用alias

前言 阅读本文约2分钟 说明 使用doskey命令 设置别名 查看当前目录 doskey lldir 激活conda的spider环境 doskey spiderconda activate spider 退出conda环境 doskey condaqconda deactivate 查看所有别名 doskey /macros

实现设计开挂|如何设计出坚不可摧的网球拍?

数字揭秘 我们发现自己可能偶尔会以过激的方式表达沮丧或愤怒&#xff0c;哪怕是在公共场合。就算是世界级的网球运动员也无法避免偶尔的情绪爆发&#xff0c;他们有时会砸球拍来释放被压抑的情绪或应对来自竞赛的压力。 网球运动员的情绪爆发已被证明是不可避免的。哪怕是包括…

Linux系统相关函数总结

在应用程序当中&#xff0c;有时往往需要去获取到一些系统相关的信息&#xff0c;譬如时间、日期、以及其它一些系统相关信息&#xff0c;本章将向大家介绍如何通过 Linux 系统调用或 C 库函数获取这些系统信息。除此之外&#xff0c;还会向大家介绍 Linux 系统下的/proc 虚拟文…

浏览器插件利器-allWebPluginV2.0.0.14-beta版发布

allWebPlugin简介 allWebPlugin中间件是一款为用户提供安全、可靠、便捷的浏览器插件服务的中间件产品&#xff0c;致力于将浏览器插件重新应用到所有浏览器。它将现有ActiveX插件直接嵌入浏览器&#xff0c;实现插件加载、界面显示、接口调用、事件回调等。支持谷歌、火狐等浏…

js删除el-table删除新增项,有的已经保存有的未经保存

有时候在弹窗中的弹窗要删除数据,有的是刚新增进来的,没有经过保存就没有id,有的已经保存过就有id 根据情况设定是否为编辑模式,如果为编辑模式就需要进行筛选删除及接口,如果不是编辑模式,只需要进行筛选删除 this.editFlag true; // 为编辑模式// 删除伤亡名单handelDel() …

数据库管理系统(DBMS)

一.数据库管理系统 1.简介 数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件&#xff0c;用于建立、使用和维护数据库&#xff0c;简称DBMS。它对数据库进行统一的管理和控制&#xff0c;以保证数据库的安全性和完整性。用户通过DBMS访问数据库中…

【PWN · ret2libc | protobuf】[2024CISCN · 华中赛区]protoverflow

套了一层protobuf壳&#xff0c;然后就是简单的ret2libc 参考速递&#xff1a;深入二进制安全&#xff1a;全面解析Protobuf-CSDN博客 前言 第一次遇到protobuf&#xff0c;如果没有了解过&#xff0c;是显然做不出来的。此次复现&#xff0c;也算是点亮了一个技能点 一、什么…

如何用Vue3和Plotly.js实现一个动态3D图的在线展示

本文由ScriptEcho平台提供技术支持 项目地址&#xff1a;传送门 基于 Plotly.js 的交互式图表动画 应用场景 本代码演示了如何使用 Plotly.js 创建交互式图表动画&#xff0c;其中一个区域填充的区域在给定时间间隔内更新其数据。这种动画可用于可视化时间序列数据或展示数…

【监控】1.prometheus的安装

在 macOS 上部署 Grafana 和 Prometheus 来监控 Java 服务是一个非常实用的操作。以下是详细的步骤&#xff0c;包括如何安装和配置 Prometheus、Grafana 以及在 Java 服务中集成 Prometheus 的客户端库来收集指标数据。 1. 安装 Prometheus 1.1 使用 Homebrew 安装 Promethe…

【创建者模式-单例设计模式】

概述 这种模式设计到一个单一的类&#xff0c;该类负责创建自己的对象&#xff0c;同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象方式&#xff0c;可以直接访问&#xff0c;不需要实例化该类的对象。 单例模式的实现 饿汉式&#xff1a;即类的初始化阶段就…

centOS7网络配置_NAT模式设置

第一步&#xff1a;查看电脑网卡 nat模式对应本地网卡的VMnet 8 &#xff0c;查看对应的IP地址。 第二步&#xff1a;虚拟网络编辑器 打开VMWare&#xff0c;编辑--虚拟网络编辑器&#xff0c;整个都默认设置好了&#xff0c;只需要查看对应的DHCP设置中对应的IP的起始&#…

算法金 | 没有思考过 Embedding,不足以谈 AI

大侠幸会&#xff0c;在下全网同名「算法金」 0 基础转 AI 上岸&#xff0c;多个算法赛 Top 「日更万日&#xff0c;让更多人享受智能乐趣」 抱个拳&#xff0c;送个礼 在当今的人工智能&#xff08;AI&#xff09;领域&#xff0c;Embedding 是一个不可或缺的概念。如果你没有…

Python学习笔记24:进阶篇(十三)常见标准库使用之数据压缩功能模块zlib,gzip,bz2,lzma的学习使用

前言 本文是根据python官方教程中标准库模块的介绍&#xff0c;自己查询资料并整理&#xff0c;编写代码示例做出的学习笔记。 根据模块知识&#xff0c;一次讲解单个或者多个模块的内容。 教程链接&#xff1a;https://docs.python.org/zh-cn/3/tutorial/index.html 数据压缩…