代码之家  ›  专栏  ›  技术社区  ›  David Young

如何在MacOS的shell脚本中将日期转换为UNIX时间戳

  •  68
  • David Young  · 技术社区  · 14 年前

    在Linux上,您可以在shell脚本中将类似“2010-10-02”的日期转换为unix时间戳

    date -d "2010-10-02" "+%s"
    

    因为Mac OS没有相应的 -d级 日期 . 如何在shell脚本中将日期转换为unix时间戳。

    5 回复  |  直到 10 年前
        1
  •  36
  •   Lou Franco    14 年前

    man date 在OSX上有这个例子

    date -j -f "%a %b %d %T %Z %Y" "`date`" "+%s"
    

    我想这正是你想要的。

    你可以用它来指定日期

    date -j -f "%a %b %d %T %Z %Y" "Tue Sep 28 19:35:15 EDT 2010" "+%s"
    

    或者用你想要的格式。

        2
  •  136
  •   JRiggles    12 年前
    date +%s
    

        3
  •  17
  •   user405725 user405725    14 年前

    date -j -f "%Y-%m-%d" "2010-10-02" "+%s"

        4
  •  3
  •   smarisetti    10 年前

    我在macosx上使用了以下命令。

    currDate=`date +%Y%m%d`
    epochDate=$(date -j -f "%Y%m%d" "${currDate}" "+%s")
    
        5
  •  2
  •   Scott Prive    5 年前

    1. https://brew.sh/
    2. brew install coreutils
    3. 添加到您的bash\u配置文件: alias date="/usr/local/bin/gdate"
    4. date +%s 1547838127

    评论说Mac必须是“不同的”,这仅仅表明评论者对UNIX的历史一无所知。macOS基于BSD-UNIX,它比Linux早得多。Linux本质上是其他UNIX系统的复制品,Linux决定采用GNU工具而不是BSD工具,从而“与众不同”。GNU工具更加用户友好,但它们通常不会出现在任何*BSD系统上(就是这样)。

    真的,如果你大部分时间都在Linux上,但是有一个Mac桌面,你

        6
  •  1
  •   vanyo    4 年前

    date -j -f "%Y-%m-%d %H:%M:%S" "2020-04-07 00:00:00" "+%s"

    如果没有,它会打印动态秒数 %H:%M:%S 00:00:00 .

        7
  •  0
  •   alex    3 年前

    我编写了一组脚本,为BSD和GNU版本的提供了统一的接口 date

    Follow命令将输出日期的历元秒数 2010-10-02 ,并且它同时适用于BSD和GNU版本的

    $ xsh /date/convert "2010-10-02" "+%s"
    1286020263
    

    它相当于GNU版本的命令 日期 :

    date -d "2010-10-02" "+%s"
    

    以及BSD版本的命令 日期

    date -j -f "%F" 2010-10-02 "+%s"
    

    脚本可在以下位置找到:

    它是图书馆的一部分,叫做 xsh-lib/core xsh ,我将它们列在下面:

        8
  •  0
  •   ma11hew28    3 年前

    要将UTC格式的日期转换为Unix时间戳,请执行以下操作:

    date -ju -f "%F %T" "2021-03-08 14:56:21" "+%s"