最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Golang time.Format時(shí)間格式化的實(shí)現(xiàn)

 更新時(shí)間:2026年04月21日 09:05:30   作者:穿越時(shí)空  
Go語言的time.Format使用一個(gè)固定的參考時(shí)間來定義格式,本文就來介紹一下Golang time.Format時(shí)間格式化的實(shí)現(xiàn),感興趣的可以了解一下

Go 語言的 time.Format 使用一個(gè)固定的參考時(shí)間 Mon Jan 2 15:04:05 MST 2006 來定義格式,這個(gè)時(shí)間是 2006-01-02 15:04:05,對(duì)應(yīng)數(shù)字 1 2 3 4 5 6 7(月份=1,日期=2,小時(shí)=15=3,分鐘=4,秒=5,年份=6,時(shí)區(qū)=7),便于記憶。

一、核心原理

package main
import (
    "fmt"
    "time"
)
func main() {
    t := time.Date(2026, 4, 21, 9, 6, 0, 0, time.Local)
    // 使用參考時(shí)間定義格式
    fmt.Println(t.Format("2006-01-02 15:04:05"))      // 2026-04-21 09:06:00
    fmt.Println(t.Format("2006/01/02"))               // 2026/04/21
    fmt.Println(t.Format("Jan 2, 2006"))              // Apr 21, 2026
    fmt.Println(t.Format("Monday, January 2, 2006"))  // Tuesday, April 21, 2026
}

二、常用格式速查

格式代碼輸出示例
標(biāo)準(zhǔn)日期時(shí)間"2006-01-02 15:04:05"2026-04-21 09:06:00
緊湊日期時(shí)間"20060102150405"20260421090600
僅日期"2006-01-02"2026-04-21
僅時(shí)間"15:04:05"09:06:00
12小時(shí)制"2006-01-02 03:04:05 PM"2026-04-21 09:06:00 AM
RFC3339time.RFC33392026-04-21T09:06:00+08:00
RFC1123time.RFC1123Tue, 21 Apr 2026 09:06:00 CST
中文格式"2006年01月02日 15時(shí)04分05秒"2026年04月21日 09時(shí)06分00秒
日志格式"2006/01/02 - 15:04:05.000"2026/04/21 - 09:06:00.000

三、預(yù)定義常量

time 包內(nèi)置了常用格式常量:

const (
    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"
    RFC850      = "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"
    RFC3339     = "2006-01-02T15:04:05Z07:00"
    RFC3339Nano = "2006-01-02T15:04:05.999999999Z07:00"
    Kitchen     = "3:04PM"
    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"
)

使用示例:

t := time.Now()
fmt.Println(t.Format(time.RFC3339))      // 2026-04-21T09:06:00+08:00
fmt.Println(t.Format(time.Kitchen))      // 9:06AM

四、解析時(shí)間(Parse)

time.Parse 使用相同的參考時(shí)間格式:

// 解析字符串為 time.Time
t, err := time.Parse("2006-01-02 15:04:05", "2026-04-21 09:06:00")
if err != nil {
    log.Fatal(err)
}
// 帶時(shí)區(qū)解析
t, err = time.ParseInLocation("2006-01-02 15:04:05", "2026-04-21 09:06:00", time.Local)

五、常見坑

1. 月份大小寫

"01"  // 月份數(shù)字 (01-12)
"1"   // 月份數(shù)字 (1-12,無前導(dǎo)零)
"Jan" // 英文縮寫 (Jan, Feb...)
"January" // 英文全名

2. 日期大小寫

"02"  // 日期 (01-31)
"2"   // 日期 (1-31)
"_2"  // 日期 ( 1-31,空格補(bǔ)齊)

3. 小時(shí)制

"15"  // 24小時(shí)制 (00-23)
"03"  // 12小時(shí)制 (01-12)
"3"   // 12小時(shí)制 (1-12)
"PM"  // 大寫 AM/PM
"pm"  // 小寫 am/pm

4. 時(shí)區(qū)

"MST"     // 時(shí)區(qū)縮寫 (CST, PST...)
"-0700"   // 數(shù)字時(shí)區(qū)偏移
"-07:00"  // 帶冒號(hào)的時(shí)區(qū)偏移
"Z0700"   // RFC3339 格式時(shí)區(qū)
"Z07:00"  // RFC3339 帶冒號(hào)

六、實(shí)用工具函數(shù)

package main
import (
    "fmt"
    "time"
)
// 常用格式常量
const (
    FormatDateTime = "2006-01-02 15:04:05"
    FormatDate     = "2006-01-02"
    FormatTime     = "15:04:05"
    FormatCompact  = "20060102150405"
)
// FormatTime 格式化時(shí)間
func FormatTime(t time.Time) string {
    return t.Format(FormatDateTime)
}
// ParseTime 解析時(shí)間字符串
func ParseTime(s string) (time.Time, error) {
    return time.ParseInLocation(FormatDateTime, s, time.Local)
}
// BeginOfDay 獲取當(dāng)天開始時(shí)間
func BeginOfDay(t time.Time) time.Time {
    return time.Date(t.Year(), t.Month(), t.Day(), 0, 0, 0, 0, t.Location())
}
// EndOfDay 獲取當(dāng)天結(jié)束時(shí)間
func EndOfDay(t time.Time) time.Time {
    return time.Date(t.Year(), t.Month(), t.Day(), 23, 59, 59, 999999999, t.Location())
}
func main() {
    now := time.Now()
    fmt.Println("當(dāng)前時(shí)間:", FormatTime(now))
    fmt.Println("當(dāng)天開始:", BeginOfDay(now).Format(FormatDateTime))
    fmt.Println("當(dāng)天結(jié)束:", EndOfDay(now).Format(FormatDateTime))
    t, _ := ParseTime("2026-04-21 09:06:00")
    fmt.Println("解析結(jié)果:", t.Format(FormatDateTime))
}

七、記憶口訣

月份 1,日期 2,小時(shí) 3(15點(diǎn)),分鐘 4,秒 5,年份 6,時(shí)區(qū) 7
2006-01-02 15:04:05
     ↑  ↑   ↑  ↑  ↑
     6  1   3  4  5

記住這個(gè)參考時(shí)間,所有格式都基于此推導(dǎo)即可。

到此這篇關(guān)于Golang time.Format時(shí)間格式化的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Golang time.Format時(shí)間格式化內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • go語言實(shí)現(xiàn)聊天服務(wù)器的示例代碼

    go語言實(shí)現(xiàn)聊天服務(wù)器的示例代碼

    這篇文章主要介紹了go語言實(shí)現(xiàn)聊天服務(wù)器的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-08-08
  • Golang使用etcd構(gòu)建分布式鎖的示例分享

    Golang使用etcd構(gòu)建分布式鎖的示例分享

    在本教程中,我們將學(xué)習(xí)如何使用Go和etcd構(gòu)建分布式鎖系統(tǒng),分布式鎖系統(tǒng)對(duì)于管理對(duì)分布式系統(tǒng)中共享資源的并發(fā)訪問至關(guān)重要,它有助于維護(hù)一致性,防止競爭條件,并確保在任何給定時(shí)間只有一個(gè)進(jìn)程獨(dú)占訪問資源,需要的朋友可以參考下
    2025-01-01
  • Go利用反射reflect實(shí)現(xiàn)獲取接口變量信息

    Go利用反射reflect實(shí)現(xiàn)獲取接口變量信息

    反射是通過實(shí)體對(duì)象獲取反射對(duì)象(Value、Type),然后可以操作相應(yīng)的方法。本文將利用Go語言中的反射reflect實(shí)現(xiàn)獲取接口變量信息,需要的可以參考一下
    2022-05-05
  • Golang 如何解析和生成json

    Golang 如何解析和生成json

    這篇文章主要介紹了Golang 如何解析和生成json,幫助大家更好的理解和學(xué)習(xí)golang,感興趣的朋友可以了解下
    2020-09-09
  • Go處理json數(shù)據(jù)方法詳解(Marshal,UnMarshal)

    Go處理json數(shù)據(jù)方法詳解(Marshal,UnMarshal)

    這篇文章主要介紹了Go處理json數(shù)據(jù)的方法詳解,Marshal(),UnMarshal(),需要的朋友可以參考下
    2022-04-04
  • Golang二維切片初始化的實(shí)現(xiàn)

    Golang二維切片初始化的實(shí)現(xiàn)

    這篇文章主要介紹了Golang二維切片初始化的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Golang 協(xié)程配合管道的實(shí)現(xiàn)示例

    Golang 協(xié)程配合管道的實(shí)現(xiàn)示例

    本文主要介紹了Golang協(xié)程配合管道的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-01-01
  • gRPC中攔截器的使用詳解

    gRPC中攔截器的使用詳解

    這篇文章主要介紹了gRPC中攔截器的使用詳解,本次主要介紹在gRPC中使用攔截器,包括一元攔截器和流式攔截器,在攔截器中添加JWT認(rèn)證,客戶端登錄之后會(huì)獲得token,請(qǐng)求特定的API時(shí)候需要帶上token才能訪問,需要的朋友可以參考下
    2023-10-10
  • 關(guān)于Go你不得不知道的一些實(shí)用小技巧

    關(guān)于Go你不得不知道的一些實(shí)用小技巧

    開發(fā)語言上Go成為高并發(fā)業(yè)務(wù)開發(fā)的主流語言,再加上云原生技術(shù)底座的驅(qū)動(dòng),Go語言風(fēng)光無限,下面這篇文章主要給大家介紹了關(guān)于Go你不得不知道的一些實(shí)用小技巧,需要的朋友可以參考下
    2022-11-11
  • golang 中的 nil的場景分析

    golang 中的 nil的場景分析

    這篇文章主要介紹了golang 中的 nil,本文通過多種場景分析給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03

最新評(píng)論

家居| 张家界市| 丰原市| 盐边县| 调兵山市| 山丹县| 柘城县| 台安县| 盱眙县| 博湖县| 额济纳旗| 稻城县| 方山县| 吉安市| 偃师市| 西青区| 上蔡县| 桓仁| 霍山县| 汉阴县| 增城市| 会泽县| 于田县| 自贡市| 新竹县| 吐鲁番市| 青州市| 甘泉县| 灌阳县| 洛宁县| 丹阳市| 久治县| 西乡县| 大埔区| 洛阳市| 雅江县| 呼伦贝尔市| 高阳县| 呼图壁县| 龙江县| 长泰县|