2015-12-18 21 views
0

我正在尝试编写一个bash脚本,它以MM/DD/YYYY等格式输入特定日期的用户输入,并返回该特定日期是否为夏令时间与否。有没有特定的功能来检查这个?日期命令是否有办法做到这一点?我正在使用RHEL 6.4。从用户在bash中输入的日期检测DST

回答

0

你可以得到GNU日期告诉你的时区缩写符号。这将改变,如果DST生效:

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

返回:

PDT 

和:

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

返回:

PST 

我不明白的方式以确定DST是否明确地从起生效,但取决于你试图完成这可能解决你的问题。

+0

感谢您的帮助!我完全忘记了夏时制时区的变化。谢谢。 – conman1985

+0

*时区*不会更改。它仍然是“美国/太平洋”。时区*偏移量*与相关时区*缩写*相同。 –

+1

更新了答案,以便更清楚。 – Julian

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 
+0

请注意,许多时区不使用夏令时,亚洲/东京和加拿大/萨斯喀彻温省是两个。 –

+0

感谢您的回复。我会看看perl的这个问题 – conman1985