【问题标题】:system time in specific format in c programc程序中特定格式的系统时间
【发布时间】:2013-12-04 06:41:10
【问题描述】:

我正在使用 RED HAT 机器。我想在我的程序中获取系统时间。下面是代码的一部分。 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 中给出的时间。以上格式。

【问题讨论】:

  • 根据this 应该考虑时区。

标签: c time systemtime


【解决方案1】:

localtime() 函数将日历时间 timep 转换为损坏- 停机时间表示,相对于用户指定的表示 timezoneGMT

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

【讨论】:

    【解决方案2】:

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

    • 检查/adjust机器的时区。
    • 检查/调整机器 BIOS 中设置的时间

    【讨论】:

    • 你能详细解释一下吗?我对它有点陌生。例如我有两台机器。一个在非洲,一个在印度,现在两个时间不同。所以我只想要机器的当前时间。让我们说一下“日期命令”给出的内容。用这种格式
    • 两者的时间不会不同。它们会根据您机器设置的时区显示时间。你能给出你的程序的输出和日期命令的输出吗?
    • @user95711:请看我调整后的答案。
    猜你喜欢
    • 2012-10-03
    • 1970-01-01
    • 2023-04-01
    • 2021-06-25
    • 2012-01-03
    • 1970-01-01
    • 2017-03-13
    • 2017-03-28
    • 1970-01-01
    相关资源
    最近更新 更多