【发布时间】:2022-04-15 11:45:19
【问题描述】:
我有一个格式为 Jul 27 23:59:59 2016 GMT 的日期字符串,我需要使用 OS X BSD date 命令将其转换为等效的纪元时间戳。
GNU date 有一个很好的 -d/--date=STRING 参数:
$ date -d "Jul 27 23:59:59 2016 GMT" +'%s'
1469663999
遗憾的是,OSX 上的 BSD date 命令没有这样的选项。
date -j -f "<FORMAT>" "Jul 27 23:59:59 2016 GMT" +'%s' 似乎是要走的路,但我找不到写入格式字符串。 Apple's man page 状态:
date -j -f "%a %b %d %T %Z %Y" "`date`" "+%s"
can be used to parse the output from date and express it in Epoch time.
但这似乎不是真的:
$ date -j -f "%a %b %d %T %Z %Y" "`date`" "+%s"
Failed conversion of ``Wed 13 Jul 2016 11:17:49 BST'' using format ``%a %b %d %T %Z %Y''
date: illegal time format
usage: date [-jnu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ...
[-f fmt date | [[[mm]dd]HH]MM[[cc]yy][.ss]] [+format]
如何使用 OS X BSD date 命令将这种格式的日期字符串转换为纪元时间戳?
我似乎无法从 date 获得版本,但如果这很重要的话,我在 OS X 10.11.5 (El Capitan) 上。
【问题讨论】: