1

我正在使用红帽机器。我想在我的程序中获取系统时间。下面是代码的一部分。 date=%Y-%m-%d time=%H:%M:%S是我想要的格式。问题是它给了我格林威治标准时间而不是我当前的系统时间。我怎样才能得到system time这种格式?

char *buf_cur = buf;
    char timestr[TIMEBUF_SIZE];
    time_t now = time (0);

    strftime(timestr,TIMEBUF_SIZE, "date=%Y-%m-%d time=%H:%M:%S", localtime(&now));
    buf_cur += sprintf(buf_cur, "%s",timestr);

简而言之,我想要一个“日期”命令在 linux 中给出的时间。与上述格式。

4

2 回答 2

2

localtime()函数将日历时间 timep 转换为细分时间表示,表示相对于用户指定的时间, timezoneGMT

要获得时间UTC,您应该使用gmtime().

于 2013-12-04T07:28:53.233 回答
0

如果 BIOS 时间设置为机器所在位置的本地时间,并且时区设置为所在位置的时区,那么您显示的代码应该为您提供本地时间。

  • 检查/调整机器的时区。
  • 检查/调整机器 BIOS 中设置的时间
于 2013-12-04T07:54:04.180 回答