Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Go 如何将unix timestap转换为十六进制_Go_Time - Fatal编程技术网

Go 如何将unix timestap转换为十六进制

Go 如何将unix timestap转换为十六进制,go,time,Go,Time,我有一段C代码,我正试图翻译它: #include <sys/time.h> #include <sys/types.h> #include <inttypes.h> #include <stdint.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> int main() { s

我有一段C代码,我正试图翻译它:

#include <sys/time.h>
#include <sys/types.h>
#include <inttypes.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>



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;
}
然而,我很难将这个数字转换成十六进制,这有点像我的C代码的输出。我确实发现了如何用这个来解码十六进制时间戳。有人能给我指出正确的方向吗?

您可以使用“%XF”在goaling中打印十六进制。像下面这样

包干管 进口 fmt 时间 func main{ fmt.PrintfUnix时间(毫秒):%XF\n,Time.Now.UnixNano/1000000 }
操场链接。

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

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;
}

你看过s上的维基百科页面的文档了吗。然后就是那个穿上的。然后,长度为11且填充为零的小写十六进制表示形式为:%011x。此答案不正确。F和X不能混在一起。您还忽略了长度、零填充和大小写。@Marc我添加了一个游乐场链接,清楚地显示了F和X的混合。它们在运行时混合在一起,但最终得到的是123234F,其中尾随的F不是数字的一部分,只是您要打印的F。
int main()
{
    int64_t unix_time_ms;
    unix_time_ms = 1589664726314;

    printf("Hex Unixtime in MS: %011"PRIx64"\n", unix_time_ms);

    return 0;
}