我需要确定是否为 Linux(Redhat)中的给定 UTC 偏移启用了夏令时。我收到诸如 UTC+05:30 之类的输入。我检查了 zdump 命令的用法。当与时区名称一起使用时,我们可以检查输出中 isdst 的值以确定夏令时的状态。
zdump -v /usr/share/zoneinfo/Asia/Kolkata | 2013 年
如上所述,zdump 需要区域名称。它不接受 UTC 偏移量。
我还尝试了如下本地时间功能。
time_t currtime;
struct tm * timeinfo;
timeinfo = localtime ( &currtime );
time_t local = mktime( timeinfo );
cout<<timeinfo->tm_isdst<<endl;
上面的代码在日期时间设置中设置时区名称时有效。如果系统使用 UTC 时间,它就不起作用。当使用 UTC 时间时,我使用gmtime而不是 localtime。
请让我知道是否有任何方法可以使用 UTC 偏移量来确定是否启用了 dst。