【问题标题】:How to find difference between 2 dates in Korn shell? [duplicate]如何在 Korn shell 中找到 2 个日期之间的差异? [复制]
【发布时间】:2014-07-25 06:56:11
【问题描述】:

我似乎在任何地方都找不到这个...我有两个日期/时间使用 YYYYmmddHHMMSS,像这样:

D1=20140603132050
D2=20140604114020

我需要以小时为单位找出它们之间的差异。

  • 我正在使用 korn shell;
  • 我有 GNU 日期;

有什么线索吗?

【问题讨论】:

  • 你想看什么?
  • @realspirituals:我想看“D1 和 D2 的区别是 X 小时。”
  • @fedorqui:出于某种奇怪的原因,GNU date 无法识别“-d”参数...
  • 哦,在 Solaris 中,日期中没有 -dstackoverflow.com/search?q=%5Bsolaris%5D+date 展示了一些方法,例如 stackoverflow.com/questions/12471585/… 看起来很有帮助。
  • 这在 Perl 或 Tcl 这样的语言中会更容易。 perl --version 和/或 echo 'puts [info patchlevel]' | tclsh 是什么

标签: shell unix solaris ksh


【解决方案1】:

如果你有一个最近的 Perl,你可以这样做:

diff_hrs=$(
    printf "%s\n" "$D1" "$D2" | 
    perl -MTime::Piece -e '
        ($t1, $t2) = map {chomp; Time::Piece->strptime($_, "%Y%m%d%H%M%S")} <>; 
        print +($t2-$t1)/3600, "\n"
    '
)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-29
    • 2016-03-20
    • 1970-01-01
    相关资源
    最近更新 更多