首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否有一种可移植的方法可以将本地系统时区转换为libical?

是否有一种可移植的方法可以将本地系统时区转换为libical?
EN

Stack Overflow用户
提问于 2016-04-29 22:04:27
回答 1查看 248关注 0票数 0

libical似乎只接受Olsen城市的名称来查找其数据库中的时区。我所得到的是一个可移植的结构,它有一个GMT偏移量和3-4个字母的简写代码(EST/EDT等),但是在libical中没有接受它的功能。

我有一个非常糟糕的方法,我扫描Z列表从利比试图匹配Z名称,这可能会奏效,但我很清楚,这是一个不好的想法。但是,我还没有找到任何其他的方法来将本地时区变成一个libical timezone。

我错过了一些简单的东西吗?

我说的便携式操作系统是指windows、osx和linux。

这是我正在编写的c程序。但我现在看到,z偏移不是posix,所以这是行不通的。

EN

Stack Overflow用户

回答已采纳

发布于 2016-05-03 13:33:04

所以我认为答案是没有答案的。反正也没什么便携的。

因此,我为linux和osx提供了单独的构建路径,而且我还没有进入windows。

linux实现只是从/etc/timezone读取(关于How do I find the current system timezone?的更多信息)

osx的实现就是这样做的。

代码语言:javascript
复制
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);

不是便携式的,但至少是正确的。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36948149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档