8

我在mac终端上尝试了以下,发现它有一些问题:

date –j –f '%d-%b-%Y' "22-Aug-2013" "+%s"
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]

有人可以帮我解析这个字符串22-Aug-2013并获得纪元秒吗?

4

2 回答 2

10

您在选项字符之前使用了错误的字符,j并且f- 您使用的是破折号 (–, U+2013) 而不是连字符 (-, U+002D)。Unix 工具在解析命令行参数时往往不是非常精通 Unicode :-)

您可能会发现 TextWrangler/BBEdit 的 Character Inspector 调色板很有用,或者如果您更喜欢 Emacs M-x describe-char,.

于 2013-08-25T02:59:12.060 回答
4

我在 OS X 10.8.4 中没有问题:

$ date -j -f '%d-%b-%Y' "22-Aug-2013" "+%s"
1377223888

$ date -j -f '%s' 1377223888
Thu Aug 22 21:11:28 CDT 2013

请注意,它正在使用当前时间并将其包含在指定的日期中。明确设置时间会更准确:

$ date -j -f '%d-%b-%Y %T' "22-Aug-2013 00:00:00" "+%s"
1377147600

$ date -j -f '%s' 1377147600
Thu Aug 22 00:00:00 CDT 2013
于 2013-08-25T02:14:24.073 回答