gpt4 book ai didi

c - nohup 文件中的本地时间恢复为 UTC

转载 作者:行者123 更新时间:2023-11-30 17:15:54 24 4
gpt4 key购买 nike

我有一些程序可以写入带有日期戳的 nohup 文件。当程序在终端中运行并打印到屏幕上时,日期将显示正确的本地时间。但是,当使用 nohup 命令从启动启动程序并将输出发送到文件时,时间始终采用 UTC 格式。

    time_t curtime;
time(&curtime);
//Printed to nohup.out (processlog.txt)
printf("Application Started %s", ctime(&curtime));

我尝试了 localtime() 和 strftime(),结果是一样的。

我也许会使用某种手动偏移。我尝试使用简单的 tm_hour 偏移量,但是当 UTC 时间过渡到第二天时,这将不起作用。

有什么建议吗?

最佳答案

甚至使用 system("date"); nohup 文件日期/时间戳中未显示本地时间。日期命令将打印“UTC”。

也许这就是“绕过街区跨过阈值”,但添加这个子例程是可行的。我只是希望夏令时能够在今年晚些时候正确切换。

int print_time()
{
struct tm *localtime;
time_t rawtime;
time_t offset;

setenv( "TZ", "EST5EDT", 1 );
tzset();

time(&rawtime);
/* Get GMT time Offset by the timezone and DST*Number of seconds in an hour*/
offset = (rawtime - timezone + (daylight*3600));
localtime = gmtime(&offset);
printf("%02d/%02d/%02d %2d:%02d:%02d\n",localtime->tm_year+1900, localtime->tm_mon+1, localtime->tm_mday, localtime->tm_hour, localtime->tm_min, localtime->tm_sec);

return(0);
}

在需要日期/时间戳的地方运行子程序。例如:

//Printed to nohup.out (application_log.txt)
printf("Application Started ");
print_time();

关于c - nohup 文件中的本地时间恢复为 UTC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29834902/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com