从用户在bash中输入的日期检测DST

时间:2015-12-18 00:52:01

标签: bash shell dst

我正在尝试编写一个bash脚本,该脚本以MM / DD / YYYY等格式接收特定日期的用户输入,并返回该特定日期是否在夏令时期间。是否有一个特定的功能来检查这个? date命令有办法执行此操作吗?我使用的是RHEL 6.4。

2 个答案:

答案 0 :(得分:1)

您可以通过GNU日期告诉您时区缩短。如果DST生效,这将改变:

TZ=US/Pacific date --date '2015/05/12' +%Z

返回:

PDT

TZ=US/Pacific date --date '2015/12/12' +%Z

返回:

PST

我没有看到从date明确判断DST是否生效的方法,但是根据你想要实现的目标,这可能会解决你的问题。

答案 1 :(得分:0)

我将使用perl DateTime模块:

perl -MDateTime -E '
    ($y, $m, $d) = split(/-/, shift);
    $dt = DateTime->new(year=>$y, month=>$m, day=>$d, time_zone=>"local");
    say $dt->is_dst;
' "2015-06-15"
1
perl -MDateTime -E '
    ($y, $m, $d) = split(/-/, shift);
    $dt = DateTime->new(year=>$y, month=>$m, day=>$d, time_zone=>"local");
    say $dt->is_dst;
' "2015-01-15"
0