Golang中如何将time转换为Timeval
Golang中如何将time转换为Timeval 假设我将时间作为字符串接收到’ServTime’中,并按如下方式解析。
layout := time.RFC3339
t, _ := time.Parse(layout, ServTime.(string))
如何使用以下函数设置这个新时间
func Settimeofday(tv *Timeval) (err error)
所以我的问题是将字符串转换为Timeval的最佳或期望格式是什么? 如果我理解有误请指正。
谢谢
6 回复
它包含两个整数。您认为什么样的形式是可读的?
更多关于Golang中如何将time转换为Timeval的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
要将日期格式化为字符串,使用 time.Time 类型更为合适。请采用这种方式。
我明白了。抱歉之前没有表达清楚。我原本希望能有类似’time.Time.String()'的功能,可以用易于阅读的日期时间格式显示。不管怎样,我之前遗漏了下面的部分:
Usec: int32(t.UnixNano() / 1000 % 1000)
你的帖子帮助我意识到了这一点。谢谢。
假设 Timeval 类似于 C 系统调用结构体,它接收自 1970 年以来的秒数和微秒数。在 Go 的 time.Time 结构体中,您可以使用 Unix() 获取秒数,使用 UnixNano() 获取纳秒数。后者需要经过除法和取模运算来仅获取亚秒部分。然后,您可以在 timeval 中填充相应的值。
编辑:哦,我看到了结构体。所以,可能是这样的写法(未经测试):
t := ... // 一个 time.Time 对象
tv := syscall.Timeval {
Sec: t.Unix(), // 在 32 位架构上可能是 int32 类型
Usec: int32(t.UnixNano() / 1000 % 1000),
}


