温馨提示×

Go语言时间处理如何格式化输出

小樊
81
2024-11-07 13:21:45
栏目: 编程语言

在Go语言中,可以使用time包来处理时间和日期。要格式化输出时间,首先需要创建一个time.Time类型的变量,然后使用Format方法将其格式化为字符串。以下是一些常用的时间格式化模板:

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" // RFC822 with numeric zone
    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" // RFC1123 with numeric zone
    RFC3339     = "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"
)

下面是一个使用time.Now()函数获取当前时间并使用不同格式化模板进行输出的示例:

package main

import (
	"fmt"
	"time"
)

func main() {
	now := time.Now()

	// 使用ANSIC格式化输出
	fmt.Println("ANSIC:", now.Format(ANSIC))

	// 使用UnixDate格式化输出
	fmt.Println("UnixDate:", now.Format(UnixDate))

	// 使用RubyDate格式化输出
	fmt.Println("RubyDate:", now.Format(RubyDate))

	// 使用RFC822格式化输出
	fmt.Println("RFC822:", now.Format(RFC822))

	// 使用RFC1123格式化输出
	fmt.Println("RFC1123:", now.Format(RFC1123))

	// 使用RFC3339格式化输出
	fmt.Println("RFC3339:", now.Format(RFC3339))

	// 使用自定义格式化字符串
	customFormat := "2006-01-02 15:04:05"
	fmt.Println("Custom:", now.Format(customFormat))
}

运行上述代码,你将看到类似以下的输出:

ANSIC: Mon Jan 17 14:30:16 2022
UnixDate: Mon Jan 17 14:30:16 MST 2022
RubyDate: Mon Jan 17 14:30:16 -0700 2022
RFC822: Mon, 17 Jan 2022 14:30:16 MST
RFC1123: Mon, 17 Jan 2022 14:30:16 MST
RFC3339: 2022-01-17T14:30:16Z07:00
Custom: 2022-01-17 14:30:16

你可以根据需要选择合适的格式化模板来输出时间。

0