📅  最后修改于: 2023-12-03 15:01:01.812000             🧑  作者: Mango
Golang中的time.Time
类型是表示时间的结构体,它具有很多与时间相关的方法,其中包含了UnmarshalBinary()
函数,可以用于将二进制数据解析成时间。
func (t *Time) UnmarshalBinary(data []byte) error
data
:待解析的二进制数据,类型为[]byte
error
:解析过程中出现的错误,若无错误则返回nil
UnmarshalBinary()
函数会将二进制数据解析成一个time.Time
类型的值。二进制数据的格式应与time.Time.MarshalBinary()
函数序列化出的数据格式相同。
error
。time.Time
类型的对象,里面包含了解析后的时间值。// 从当前时间生成一个二进制时间数据
data, err := time.Now().MarshalBinary()
if err != nil {
panic(err)
}
// 将二进制时间数据解析成时间值
var t time.Time
err = t.UnmarshalBinary(data)
if err != nil {
panic(err)
}
// 打印时间值
fmt.Println(t)
上面的代码中,首先使用time.Now()
函数生成一个时间对象,然后调用MarshalBinary()
函数将时间对象序列化成二进制数据。接着使用UnmarshalBinary()
函数将二进制数据解析成时间值。最后,将解析出的时间值输出到控制台。
package main
import (
"fmt"
"time"
)
func main() {
// 从当前时间生成一个二进制时间数据
data, err := time.Now().MarshalBinary()
if err != nil {
panic(err)
}
// 将二进制时间数据解析成时间值
var t time.Time
err = t.UnmarshalBinary(data)
if err != nil {
panic(err)
}
// 打印时间值
fmt.Println(t)
}