c/c++开发分享是否有可移植的方法将本地系统时区转换为libical icaltimetype?

libical似乎只接受Olsen城市名称在其数据库中查找时区。 我所拥有的便携式是一个struct tm,它有一个GMT偏移和简写的3-4字母代码(EST / EDT等),但没有在libical中接受它的function。

我有一个非常糟糕的方式,我从libical扫描tz列表尝试匹配tznames,这可能会工作,但我很清楚这是一个坏主意。 但我还没有找到任何其他方法将本地时区变成libical icaltimetype。

我错过了一些简单的事吗?

便携式我的意思是Windows,osx和linux。

这是我正在写的ac程序。 但我现在看到tz偏移不是posix,所以不会这样做。

    所以我认为答案是没有答案。 无论如何都没有便携。

    所以我有linux和osx的单独构建路径,我还没有进入windows …

    linux实现只是从/ etc / timezone读取(更多关于如何找到当前系统时区? )

    而osx实现就是这样做的。

     CFTimeZoneRef tzlocal = CFTimeZoneCopyDefault(); CFStringRef me = CFTimeZoneGetName(tzlocal); NSString *local = (__bridge NSString *)me; const char *tzname = [local cStringUsingEncoding:NSUTF8StringEncoding]; log.debug("Looking up timezone for %s", tzname); // this is a built-in timezone so we don't have to free it. local_timezone = icaltimezone_get_builtin_timezone(tzname); 

    不便携但至少它是正确的。

      以上就是c/c++开发分享是否有可移植的方法将本地系统时区转换为libical icaltimetype?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注(猴子技术宅)。

      本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

      如若转载,请注明出处:https://www.ssfiction.com/c-cyuyankaifa/546011.html

      发表评论

      电子邮件地址不会被公开。 必填项已用*标注