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

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

在 Go 语言中,时间包提供了确定和查看时间的功能。 Go 语言的MarshalBinary()函数用于实现encoding.BinaryMarshaler接口。而且,这个函数是在time包下定义的。在这里,您需要导入“time”包才能使用这些功能。

句法:

func (t Time) MarshalBinary() ([]byte, error)

这里,“t”是指定的时间,并且在此方法中返回“byte”和“error”类型的两个值作为输出。

返回值:它返回一个字节切片,表示接收器的编码为二进制形式,并返回发生的错误,但如果没有错误,则返回“nil”。

示例 1:

// Golang program to illustrate the usage of
// Time.MarshalBinary() function
  
// Including main package
package main
  
// Importing fmt and time
import "fmt"
import "time"
  
// Calling main
func main() {
  
    // Defining t for MarshalBinary method
    t := time.Date(2001, 2, 1, 14, 30, 12, 05, time.UTC)
  
    // Calling MarshalBinary() method
    encoding, error := t.MarshalBinary()
  
    // Prints receiver's encoding
    fmt.Printf("Receiver's encoding: %v\n", encoding)
  
    // Prints error
    fmt.Printf("Error occurred: %v\n", error)
}

输出:

Receiver's encoding: [1 0 0 0 14 178 11 105 244 0 0 0 5 255 255]
Error occurred: nil

示例 2:

// Golang program to illustrate the usage of
// Time.MarshalBinary() function
  
// Including main package
package main
  
// Importing fmt and time
import "fmt"
import "time"
  
// Calling main
func main() {
  
    // Defining t for MarshalBinary method
    t := time.Date(2021, 45, 56, 34, 76, 92, 66565, time.UTC)
  
    // Calling MarshalBinary() method
    encoding, error := t.MarshalBinary()
  
    // Prints receiver's encoding
    fmt.Printf("Receiver's encoding: %v\n", encoding)
  
    // Prints error
    fmt.Printf("Error occurred: %v\n", error)
}

输出:

Receiver's encoding: [1 0 0 0 14 222 176 24 76 0 1 4 5 255 255]
Error occurred: nil

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