📜  Golang 中的 time.Time.UnmarshalText()函数示例

📅  最后修改于: 2021-10-24 14:24:33             🧑  作者: Mango

在 Go 语言中,时间包提供了确定和查看时间的功能。 Go 语言的UnmarshalText()函数用于实现encoding.TextUnmarshaler接口。这里的时间是一个引用字符串,采用 RFC 3339 格式。而且,这个函数是在time包下定义的。在这里,您需要导入“time”包才能使用这些功能。

句法:

func (t *Time) UnmarshalText(data []byte) error

这里,“t”是指向指定时间的指针,“data”是表示由 MarshalText() 方法生成的表单编码的字节切片。

返回值:它解码由 MarshalText() 方法返回的编码并返回发生的错误,但如果没有错误则返回“nil”。

示例 1:

// Golang program to illustrate the usage of
// Time.UnmarshalText() 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(2014, 5, 3, 13, 9, 7, 64, time.UTC)
  
    // Calling MarshalText() method
    encoding, _ := t.MarshalText()
  
    // Defining tm for UnmarshalText() method
    var tm time.Time
  
    // Calling UnmarshalText method with its parameters
    decode := tm.UnmarshalText(encoding)
  
    // Prints output
    fmt.Printf("Error: %v\n", decode)
}

输出:

Error: 

示例 2:

// Golang program to illustrate the usage of
// Time.UnmarshalText() 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(2024, 85, 93, 103, 79, 97, 1264, time.UTC)
  
    // Calling MarshalText() method
    encoding, _ := t.MarshalText()
  
    // Defining tm for UnmarshalText() method
    var tm time.Time
  
    // Calling UnmarshalText method with its parameters
    decode := tm.UnmarshalText(encoding)
  
    // Prints output
    fmt.Printf("Error: %v\n", decode)
}

输出:

Error: 

这里,上述代码中的“t”值超出了通常的范围,但它们在转换时被归一化。