c - 在 C 中获取跨平台的时区列表

标签 c windows linux ubuntu timezone

我正在用 C 语言开发一个程序,它需要返回一个字符串数组,其中包含计算机可以从中访问信息的所有可能区域(表面上是从 tz 数据库)。我需要在 Linux(或至少 Ubuntu)和 Windows 之间实现这个跨平台,所以这两个平台之间的任何通用方法都会让我的生活更轻松。我知道有几种方法可以在 Windows 上执行此操作(通过注册表或此处描述的方法 http://msdn.microsoft.com/en-us/library/ms171251(v=sql.90).aspx ),但除了在 Linux 中对数组进行硬编码外,我还没有找到在 Linux 中执行此操作的任何方法。在 Ubuntu 中实现此目的的最佳方法是什么?在 Windows 中是否有比我上面提到的两种方法更好的方法?

最佳答案

Dave,zoneinfo 目录的内容不仅在 Linux 发行版中是一致的,而且在许多(大多数)其他 Unice 中也是一致的。

在某些情况下,确切位置可能不同(我只知道一个:在 Linux 上,很多很多年前它曾经在/usr/lib/zoneinfo 下,当时没有这样的位置/usr/share),因此它应该可以在您的应用程序中配置。但是您可以使用/usr/share/zoneinfo 作为默认值,它在 99.9% 的情况下都有效。

关于c - 在 C 中获取跨平台的时区列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7895785/

相关文章:

windows - 是否有与 -rpath 链接器标志等效的 Windows/MSVC?

windows - 如何针对流行的病毒扫描程序测试我的应用程序?

linux - 为什么 mod_revite 在 Apache 中不起作用?

c - 后台程序中的 printf()

java - 以最佳方式计算 x 的 x 次方

asp.net - Windows Azure 设置演练(最好是傻瓜指南)?

python - 启动和停止外部程序?

c - getchar() 在内部是如何工作的?

c - 寻找选择 k 个数加起来为 n 的方法的数量

c - 在 linux 中运行特定的 c 文件