golang 的time包的常用方法

目录

time 包方法总结

类型 time.Time 的方法

库函数

代码示例:


time 包方法总结

类型 time.Time 的方法
方法名描述示例               ẵ
Now()获取当前时间和日期time.Now()
Format()格式化时间为字符串time.Now().Format("2006-01-02 15:04:05")
Add()增加指定时间time.Now().Add(2 * time.Hour)
Hour()获取小时部分time.Now().Hour()
Date()获取年、月、日部分time.Now().Date()
Before()判断当前时间是否在指定时间之前time.Now().Before(time.Now())
AddDate()增加年、月、日time.Now().AddDate(1, 2, 3)
Clock()获取小时、分钟、秒部分time.Now().Clock()
After()判断当前时间是否在指定时间之后time.Now().After(time.Now().Add(-1 * time.Hour))
Compare()比较时间,返回-1(当前时间小于指定时间)、0(相等)、1(当前时间大于指定时间)time.Now().Compare(time.Now().Add(-1 * time.Hour))
Equal()判断两个时间是否相等time.Now().Equal(time.Now())
Weekday()获取星期几time.Now().Weekday()
Truncate()截断时间到最接近但不超过的倍数时间time.Now().Truncate(24 * time.Hour)
In()转换为指定时区time.Now().In(time.UTC)
String()返回时间字符串time.Now().String()

库函数
方法名描述示例               ẵ
Parse()解析字符串为时间time.Parse("2006/01/02", "2022/05/19")
Add()增加指定时间future := time.Now().Add(2 * time.Second)
Sub()计算时间差diff := future.Sub(time.Now())
Sleep()阻塞当前 goroutine 一段时间time.Sleep(2 * time.Second)
AfterFunc()在指定时间后执行函数time.AfterFunc(diff, func() { ... })
NewTimer()创建一个计时器timer := time.NewTimer(5 * time.Second)
Stop()停止计时器timer.Stop()
Since()计算从某个时间到现在的时间差time.Since(start)
Date()创建一个新的时间time.Date(2025, time.March, 29, 20, 38, 0, 0, time.UTC)
After()返回一个在指定时间后的通道time.After(2 * time.Hour)

代码示例:
package mainimport ("fmt""time"
)func main() {// 当前时间fmt.Println(time.Now())// 格式化,stringfmt.Println(time.Now().Format("2006-01-02 15:04:05"))fmt.Println(time.Now().Format("2006.01.02 15:04:05.000"))fmt.Println(time.Now().Format("2006/01/02 15/04/05"))// --------------------------类型time.fmt.Println("--------------------")fmt.Println(time.Now().Add(2 * time.Hour))fmt.Println(time.Now().Hour())fmt.Println(time.Now().Date()) // year int, month Month, day intfmt.Println(time.Now().Before(time.Now()))fmt.Println(time.Now().AddDate(1, 2, 3))fmt.Println(time.Now().Clock())                                 // hour int, min int, sec intfmt.Println(time.Now().After(time.Now().Add(-1 * time.Hour)))   // truefmt.Println(time.Now().Compare(time.Now().Add(-1 * time.Hour))) // 调用者小于t返回-1,等于返回0,大于返回1。fmt.Println(time.Now().Equal(time.Now()))fmt.Println(time.Now().Weekday())fmt.Println(time.Now().Truncate(24 * time.Hour)) //截断到最接近但不超过原始时间的d的倍数。截断到最近的一天开始时刻fmt.Println(time.Now().In(time.UTC))             // 转换为UTC时区fmt.Println(time.Now().String())// ----------------------------库time.fmt.Println("--------------------")// 解析parseTime, _ := time.Parse("2006/01/02", "2022/05/19")fmt.Println(parseTime) // 2022-05-19 00:00:00 +0000 UTC// 运算future := time.Now().Add(2 * time.Second)fmt.Println(future)diff := future.Sub(time.Now())fmt.Println(diff)// 延时、定时var start = time.Now()time.Sleep(2 * time.Second)time.AfterFunc(diff, func() {fmt.Println("时间到")})// timertimer := time.NewTimer(5 * time.Second)fmt.Println("开始等待")<-timer.C // 经过指定的时间间隔后发送当前时间到它的通道(C);阻塞直到计时器到期//time.Timer 对象包含一个名为 C 的通道(channel),其类型为 <-chan Time。这个通道用于接收计时器到期的通知。//具体来说,当你创建了一个 time.Timer 并设置了一定的持续时间后,这个定时器会在设定的时间间隔后通过它的 C 通道发送当前的时间信息。fmt.Println("5秒过去了")// 等价于time.After(5 * time.Second)timer = time.NewTimer(5 * time.Second)stopped := timer.Stop() //如果计时器已经在通道上发送了值,则 Stop 不会有任何效果。if stopped {fmt.Println("计时器已成功停止")} else {fmt.Println("计时器未能停止")}// 注意:这里需要防止goroutine泄露,实际应用中应谨慎处理select {case <-timer.C:// 如果计时器到期,这里会被触发default:// 如果计时器被成功停止,这里什么都不会发生}// 其他fmt.Println(time.Since(start))// 输出: 2025-03-29 20:38:00 +0000 UTCfmt.Println(time.Date(2025, time.March, 29, 20, 38, 0, 0, time.UTC))fmt.Println(time.After(2 * time.Hour)) // 打印通道本身,而非时间点
}

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

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

相关文章

Elasticsearch:使用 Azure AI 文档智能解析 PDF 文本和表格数据

作者&#xff1a;来自 Elastic James Williams 了解如何使用 Azure AI 文档智能解析包含文本和表格数据的 PDF 文档。 Azure AI 文档智能是一个强大的工具&#xff0c;用于从 PDF 中提取结构化数据。它可以有效地提取文本和表格数据。提取的数据可以索引到 Elastic Cloud Serve…

【ArcGIS操作】ArcGIS 进行空间聚类分析

ArcGIS 是一个强大的地理信息系统&#xff08;GIS&#xff09;软件&#xff0c;主要用于地理数据的存储、分析、可视化和制图 启动 ArcMap 在 Windows 中&#xff0c;点击“开始”菜单&#xff0c;找到 ArcGIS文件夹&#xff0c;然后点击 ArcMap 添加数据 添加数据 - 点击工具…

RabbitMQ消息相关

MQ的模式&#xff1a; 基本消息模式&#xff1a;一个生产者&#xff0c;一个消费者work模式&#xff1a;一个生产者&#xff0c;多个消费者订阅模式&#xff1a; fanout广播模式&#xff1a;在Fanout模式中&#xff0c;一条消息&#xff0c;会被所有订阅的队列都消费。 在广播…

缓存使用纪要

一、本地缓存&#xff1a;Caffeine 1、简介 Caffeine是一种高性能、高命中率、内存占用低的本地缓存库&#xff0c;简单来说它是 Guava Cache 的优化加强版&#xff0c;是当下最流行、最佳&#xff08;最优&#xff09;缓存框架。 Spring5 即将放弃掉 Guava Cache 作为缓存机…

2025年3月29日笔记

问题&#xff1a;创建一个长度为99的整数数组&#xff0c;输出数组的每个位置数字是几&#xff1f; 解题思路&#xff1a; 1.因为题中没有明确要求需要输入,所以所有类型的答案都需要写出 解法1&#xff1a; #include<iostream> #include<bits/stdc.h> using n…

hadoop相关面试题以及答案

什么是Hadoop&#xff1f;它的主要组件是什么&#xff1f; Hadoop是一个开源的分布式计算框架&#xff0c;用于处理大规模数据的存储和计算。其主要组件包括Hadoop Distributed File System&#xff08;HDFS&#xff09;和MapReduce。 解释HDFS的工作原理。 HDFS采用主从架构&…

微信小程序:数据拼接方法

1. 使用 concat() 方法拼接数组 // 在原有数组基础上拼接新数组 Page({data: {originalArray: [1, 2, 3]},appendData() {const newData [4, 5, 6];const combinedArray this.data.originalArray.concat(newData);this.setData({originalArray: combinedArray});} }) 2. 使…

Python之贪心算法

Python实现贪心算法(Greedy Algorithm) 概念 贪心算法是一种在每一步选择中都采取当前状态下最优的选择&#xff0c;从而希望导致结果是全局最优的算法策略。 基本特点 局部最优选择&#xff1a;每一步都做出当前看起来最佳的选择不可回退&#xff1a;一旦做出选择&#xf…

【 <二> 丹方改良:Spring 时代的 JavaWeb】之 Spring Boot 中的 AOP:实现日志记录与性能监控

<前文回顾> 点击此处查看 合集 https://blog.csdn.net/foyodesigner/category_12907601.html?fromshareblogcolumn&sharetypeblogcolumn&sharerId12907601&sharereferPC&sharesourceFoyoDesigner&sharefromfrom_link <今日更新> 一、开篇整…

TCP/IP协议簇

文章目录 应用层http/httpsDNS补充 传输层TCP1. 序列号与确认机制2. 超时重传3. 流量控制&#xff08;滑动窗口机制&#xff09;4. 拥塞控制5. 错误检测与校验6. 连接管理总结 网络层ARP**ARP 的核心功能**ARP 的工作流程1. ARP 请求&#xff08;Broadcast&#xff09;2. ARP 缓…

SpringBoot分布式项目订单管理实战:Mybatis最佳实践全解

一、架构设计与技术选型 典型分布式订单系统架构&#xff1a; [网关层] → [订单服务] ←→ [分布式缓存]↑ ↓ [用户服务] [支付服务]↓ ↓ [MySQL集群] ← [分库分表中间件]技术栈组合&#xff1a; Spring Boot 3.xMybatis-Plus 3.5.xShardingSpher…

微服务架构中的精妙设计:环境和工程搭建

一.前期准备 1.1开发环境安装 Oracle从JDK9开始每半年发布⼀个新版本, 新版本发布后, ⽼版本就不再进⾏维护. 但是会有⼏个⻓期维护的版本. ⽬前⻓期维护的版本有: JDK8, JDK11, JDK17, JDK21 在 JDK版本的选择上&#xff0c;尽量选择⻓期维护的版本. 为什么选择JDK17? S…

Maven 构建配置文件详解

Maven 构建配置文件详解 引言 Maven 是一个强大的项目管理和构建自动化工具,广泛应用于 Java 开发领域。在 Maven 项目中,配置文件扮演着至关重要的角色。本文将详细介绍 Maven 构建配置文件的相关知识,包括配置文件的作用、结构、配置方法等,帮助读者更好地理解和应用 M…

【YOLO系列】基于YOLOv8的无人机野生动物检测

基于YOLOv8的无人机野生动物检测 1.前言 在野生动物保护、生态研究和环境监测领域&#xff0c;及时、准确地检测和识别野生动物对于保护生物多样性、预防人类与野生动物的冲突以及制定科学的保护策略至关重要。传统的野生动物监测方法通常依赖于地面巡逻、固定摄像头或无线传…

Hive UDF开发实战:构建高性能JSON生成器

目录 一、背景与需求场景 二、开发环境准备 2.1 基础工具栈 2.2 Maven依赖配置 三、核心代码实现

分布式特性对比

以下是关于 分片(Sharding)、一致性哈希、两阶段提交(2PC)、Paxos、Raft协议、数据局部性 的对比分析与关联性总结,涵盖核心机制、适用场景及相互关系: 一、概念对比与关联 概念核心目标关键特性典型应用场景与其它技术的关联分片(Sharding)数据水平拆分按规则(哈希、…

历史分钟高频数据

外盘期货高频分钟历史回测行情数据下载 链接: https://pan.baidu.com/s/1RUbAMxfiSyBlXfrwT_0n2w?pwdhgya 提取码: hgya通过美国期货高频交易所历史行情可以看到很多细节比如品种之一&#xff1a;FGBX_1min (1)在2024-02-29 11:14:00关键交易时刻&#xff0c;一笔大规模订单突…

final+模版设计模式的理解

模板设计模式在 Java 里是一种行为设计模式&#xff0c;它在抽象类里定义算法的骨架&#xff0c;把部分步骤的具体实现延迟到子类。如此一来&#xff0c;子类可以在不改变算法结构的基础上&#xff0c;重新定义算法中的特定步骤。 模式组成 抽象类&#xff08;Abstract Class…

JAVA接口调用限速器

目录 1、并发限速 2、串行限速 需求&#xff1a;批量调用第三方ERP接口&#xff0c;对方接口限流时&#xff0c;减缓调用速率。 1、并发限速 Slf4j RestController public class ApiCallTask {//第三方接口Resourceprivate ErpService erpService;//异步线程池Resourcepriv…

STM32 CAN控制器硬件资源与用法

1、硬件结构图 以STM32F4为例&#xff0c;他有2个can控制器&#xff0c;分别为 CAN1 CAN2。 每个CAN控制器&#xff0c;都有3个发送邮箱、2个接收fifo&#xff0c;每个接收fifo又由3个接收邮箱组成。也即每个CAN控制器都有9个邮箱&#xff0c;其中3个供发送用&#xff0c;3个…