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