我有一个基于linx的系统,我们无法指定设置时间的时区。因此,无论谁设置此设备的时间设置他们的本地时间。现在我需要根据设备上存在的本地时间计算GMT时间。
我想我需要将用户位于某个变量中的时区输入。例如timezone = EST-5:00EDT,这意味着当地时间比GMT时间晚5小时。
现在我们在标准C库中有任何函数,它会在我传递偏移量时为我计算GMT时间。
对此方面的任何帮助表示高度赞赏。我通过网络搜索,所有我能找到的只是以下链接中的这些功能: http://linux.die.net/man/3/localtime_r。我找不到任何可以根据偏移计算时间的函数。
还有其他方法可以解决这个问题。
答案 0 :(得分:1)
随时都可以获得本地"时间作为'time_t' (这将是自纪元以来的秒数值),添加GMT偏移量,您将获得格林尼治标准时间的时间戳。
至少如果你不关心日光节约或过去几个小时内可能出现的闰秒等事情。
或使其成为要求,安装人员或客户设置正确的时区,以便您可以使用标准时间功能。这通常是最简单的解决方案,因为开发人员在处理与时间相关的错误和复杂性方面的成本通常比一次性安装一些新硬件要昂贵得多。