在 Go 语言中,时间包提供了确定和查看时间的功能。 Go 语言的MarshalText()函数用于实现encoding.TextMarshaler接口。此处的时间采用 RFC 3339 格式,并附上亚秒级精度(如果可用)。而且,这个函数是在time包下定义的。在这里,您需要导入“time”包才能使用这些功能。
句法:
func (t Time) MarshalText() ([]byte, error)
这里,“t”是指定的时间,并且在此方法中返回“byte”和“error”类型的两个值作为输出。
返回值:它返回一个字节切片,表示接收者编码为 UTF-8 编码的文本,它还返回发生的错误,但如果没有错误,则返回“nil”。
示例 1:
// Golang program to illustrate the usage of
// Time.MarshalText() function
// Including main package
package main
// Importing fmt and time
import "fmt"
import "time"
// Calling main
func main() {
// Defining t for MarshalText method
t := time.Date(2001, 3, 6, 11, 45, 12, 03, time.UTC)
// Calling MarshalText() method
encoding, error := t.MarshalText()
// Prints receiver's encoding
fmt.Printf("Receiver's encoding: %v\n", encoding)
// Prints error
fmt.Printf("Error occurred: %v\n", error)
}
输出:
Receiver’s encoding: [50 48 48 49 45 48 51 45 48 54 84 49 49 58 52 53 58 49 50 46 48 48 48 48 48 48 48 48 51 90]
Error occurred:
示例 2:
// Golang program to illustrate the usage of
// Time.MarshalText() function
// Including main package
package main
// Importing fmt and time
import "fmt"
import "time"
// Calling main
func main() {
// Defining t for MarshalText method
t := time.Date(2022, 67, 45, 89, 78, 90, 4353, time.UTC)
// Calling MarshalText() method
encoding, error := t.MarshalText()
// Prints receiver's encoding
fmt.Printf("Receiver's encoding: %v\n", encoding)
// Prints error
fmt.Printf("Error occurred: %v\n", error)
}
输出:
Receiver’s encoding: [50 48 50 55 45 48 56 45 49 55 84 49 56 58 49 57 58 51 48 46 48 48 48 48 48 52 51 53 51 90]
Error occurred:
此处,上述代码中所述的“t”具有超出通常范围的值,但它们在转换时进行了标准化。