登录
首页 >  Golang >  Go问答

将UNIX时间戳转换为十六进制的方法

来源:stackoverflow

时间:2024-03-04 20:09:27 455浏览 收藏

有志者,事竟成!如果你在学习Golang,那么本文《将UNIX时间戳转换为十六进制的方法》,就很适合你!文章讲解的知识点主要包括,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

问题内容

我有一段 c 代码,正在尝试将其转换为 go:

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 



int main()
{
    struct timeval started;
    int64_t ms;

    gettimeofday(&started, null);
    ms = (int64_t) started.tv_sec * 1000 + started.tv_usec / 1000;
    printf("time: %011"prix64"\n", ms);

    return 0;
}

我发现了如何使用下面的代码片段将 unix 时间转换为毫秒:

package main

import (
    "fmt"
    "time"
)

func main() {
    fmt.Printf("Unix Time in ms: %d \n", time.Now().UnixNano() / 1000000)
}

但是,我很难如何将该数字转换为十六进制(这有点类似于我拥有的 c 代码的输出。)我确实找到了如何使用此问题/答案来解码十六进制时间戳。谁能指出我正确的方向?


解决方案


认为这应该是正确的解决方案:

package main

import (
    "fmt"
    "time"
)

func main() {
    unix_time_ms := 1589664726314
    fmt.printf("hex unixtime in ms: %x ,should equal 1721f66bd2a\n", unix_time_ms)
}

在 c 中它应该与此匹配:

int main()
{
    int64_t unix_time_ms;
    unix_time_ms = 1589664726314;

    printf("hex unixtime in ms: %011"prix64"\n", unix_time_ms);

    return 0;
}

您可以使用 '%xf' 在 goalng 中打印十六进制。就像下面这样

package main

import (
    "fmt"
    "time"
)

func main() {
    fmt.Printf("Unix Time in ms: %XF \n", time.Now().UnixNano() / 1000000)
}

演示链接here

以上就是《将UNIX时间戳转换为十六进制的方法》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>