首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux下C++下的DST还原

问Linux下C++下的DST还原
EN

Stack Overflow用户
提问于 2011-05-20 16:50:42
回答 2查看 273关注 0票数 5

我有来自德国柏林的日期/时间信息。例如: 2011-05-16 12:24:23,2011-01-21 17:00:31

不幸的是,这些时间没有夏令时的信息。我知道第一次是CEST,第二次是CET。

我可以检查日期/时间是否为夏令时。

夏季从三月份的最后一个星期天凌晨2点开始,到10月份的最后一个星期天凌晨3点结束

对我来说,自己开发这样的检查似乎很容易出错。有没有已经可以在Linux下用C语言使用的东西?

谢谢你的帮助。

EN

回答 2

Stack Overflow用户

发布于 2012-11-06 02:18:02

您可以使用mktime()将时间转换为time_t,然后将其传递回localtime(),后者将设置tm_isdst。mktime()和localtime()都利用本地系统的时间配置,因此您可以真正发现时间戳是否在所在的DST 中。这里最明显的问题是,您有一个没有地理信息的时间戳字符串,所以您能做的最好的事情就是假设它是您当前所在的位置。

票数 2
EN

Stack Overflow用户

发布于 2011-06-25 17:37:27

您可以将%Z格式参数传递给date命令以从日期获取时区,然后根据时区的名称确定%Z是否生效:

代码语言:javascript
复制
$ date -d '2011-05-16' '+%Z'
CEST

$ date -d '2011-01-21' '+%Z'
CET
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6069533

复制
相关文章

相似问题

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