c - 如何根据C语言中的本地时间计算GMT时间

标签 c linux time gnu libc

我有一个基于 linx 的系统,我们无法指定当前设置的时区。因此,无论谁在该设备上设置时间,都会设置他们的本地时间。现在我有一个要求,需要根据设备上现有的本地时间计算 GMT 时间。

我想我需要在某个变量中输入用户所在的时区。例如,时区 = EST-5:00EDT,这意味着本地时间比 GMT 时间晚 5 小时。

现在标准 C 库中是否有任何函数可以在我传递偏移量时为我计算 GMT 时间。

非常感谢在这方面的任何帮助。我在网上搜索,我只能找到以下链接中的这些功能: http://linux.die.net/man/3/localtime_r 。我找不到任何可以根据偏移量计算时间的函数。

有没有其他方法可以处理这个问题。

最佳答案

对于任何时间,获取“本地”时间作为“time_t”(这将是自纪元以来以秒为单位的值),添加 GMT 偏移量,您将获得 GMT 时间戳。

至少如果您不关心夏令时或过去几个小时内可能发生的闰秒之类的事情。

或者要求安装人员或客户设置正确的时区,以便您可以使用标准时间函数。这通常是最简单的解决方案,因为开发人员处理与时间相关的错误和复杂性的成本通常比一次性设置某些新硬件要昂贵得多。

关于c - 如何根据C语言中的本地时间计算GMT时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38696355/

相关文章:

c - Cortex M4 中的应用程序和固件分离

c++ - 为什么地址零用于空指针?

linux - Linux 中的应用程序计数器? (和 OSX?)

PHP 时间变量在 while 循环中不起作用

java - 这两种从 LocalDateTime 创建 DateTime 的方法有什么区别?

c - STRLEN 错误 - 字符串类型

python - 如何在 Python 中使用 os.umask()

linux - R 生物导体 : topGO Not Installing

ruby-on-rails - 时区无效

c - sizeof(int) * p 的语义是什么?