Linux 如何在MacOS上的shell脚本中将日期转换为UNIX时间戳
在Linux上,您可以通过以下方式将类似“2010-10-02”的日期转换为shell脚本中的unix时间戳Linux 如何在MacOS上的shell脚本中将日期转换为UNIX时间戳,linux,macos,date,shell,Linux,Macos,Date,Shell,在Linux上,您可以通过以下方式将类似“2010-10-02”的日期转换为shell脚本中的unix时间戳 date -d "2010-10-02" "+%s" 因为Mac OS没有与日期对应的-d。如何在shell脚本中将日期转换为unix时间戳。OSX上的man date有此示例 date -j -f "%a %b %d %T %Z %Y" "`date`" "+%s" 我想这正是你想要的 您可以将其用于特定日期 date -j -f "%a %b %d %T %Z %Y" "Tue
date -d "2010-10-02" "+%s"
因为Mac OS没有与日期对应的-d。如何在shell脚本中将日期转换为unix时间戳。
OSX上的man date
有此示例
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"
或者使用您想要的任何格式。date-j-f“%Y-%m-%d”2010-10-02“+%s”
这对我在OSX Lion上的工作很好。我在MacOSX上使用了以下内容
currDate=`date +%Y%m%d`
epochDate=$(date -j -f "%Y%m%d" "${currDate}" "+%s")
或者,您可以按如下方式安装GNU date:
brew安装coreutils
alias date=“/usr/local/bin/gdate”
date+%s
1547838127date-j-f“%Y-%m-%d%H:%m:%s”“2020-04-07 00:00:00”“+%s”
当没有
%H:%M:%S
和00:00:00
时,它将打印动态秒数。我编写了一组脚本,为日期的BSD和GNU版本提供统一的接口
$ xsh /date/convert "2010-10-02" "+%s"
1286020263
Follow命令将输出日期2010-10-02
的历元秒数,它同时适用于BSD和GNU版本的date
$ xsh /date/convert "2010-10-02" "+%s"
1286020263
它相当于GNU版本的date
:
date -d "2010-10-02" "+%s"
date -j -f "%F" 2010-10-02 "+%s"
以及BSD版本为date
的命令:
date -d "2010-10-02" "+%s"
date -j -f "%F" 2010-10-02 "+%s"
脚本可在以下位置找到:
它是名为xsh lib/core
的库的一部分。要使用它们,您需要reposxsh
和xsh lib/core
,我将它们列在下面:
要将UTC中的日期转换为Unix时间戳,请执行以下操作:
date -ju -f "%F %T" "2021-03-08 14:56:21" "+%s"
同样适用于Linux(Ubuntu10.04),OP询问如何将特定的给定日期转换为时间戳date+%s
将只使用当前日期。在使用bash shell的OSX终端上,我无法使用上述命令Ex:currDate=date+%Y%m%d
date-j-f“%a%b%d%T%Z%Y”“${currDate}”“++%s”@Jagdeep仅当指定的时区是系统时区时,此命令才能在OSX上工作。我在PDT
中,因此在上面的命令中,更改EDT
wtihPDT
对我有效。很好,谢谢。如果您man strftime
,您将看到“%F相当于%Y-%m-%d”,“T相当于%H:%m:%S”。因此,我认为如果您愿意,可以将输入\u fmt
缩短为“%F%T”。