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.pswp.cn/news/899641.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/899641.shtml
英文地址,請注明出處:http://en.pswp.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個…