我有来自德国柏林的日期/时间信息。例如: 2011-05-16 12:24:23,2011-01-21 17:00:31
不幸的是,这些时间没有夏令时的信息。我知道第一次是CEST,第二次是CET。
我可以检查日期/时间是否为夏令时。
夏季从三月份的最后一个星期天凌晨2点开始,到10月份的最后一个星期天凌晨3点结束
对我来说,自己开发这样的检查似乎很容易出错。有没有已经可以在Linux下用C语言使用的东西?
谢谢你的帮助。
发布于 2012-11-06 02:18:02
您可以使用mktime()将时间转换为time_t,然后将其传递回localtime(),后者将设置tm_isdst。mktime()和localtime()都利用本地系统的时间配置,因此您可以真正发现时间戳是否在所在的DST 中。这里最明显的问题是,您有一个没有地理信息的时间戳字符串,所以您能做的最好的事情就是假设它是您当前所在的位置。
发布于 2011-06-25 17:37:27
您可以将%Z格式参数传递给date命令以从日期获取时区,然后根据时区的名称确定%Z是否生效:
$ date -d '2011-05-16' '+%Z'
CEST
$ date -d '2011-01-21' '+%Z'
CEThttps://stackoverflow.com/questions/6069533
复制相似问题