如何从命令行更改日期格式?

Dyc*_*cey 4 format command-line date

比如说,以一种格式转换日期的最快方法是什么?

2008-06-01

以另一种格式约会

太阳2008年6月1日

重要的一点实际上是'太阳',因为根据日期名称,我可能需要以非确定性的方式摆弄其他东西.我正在运行GNU bash,版本3.2.17(1)-release(i386-apple-darwin9.0).

[背景:我想从命令行执行此操作的原因是,我真正想要的是将其写入TextMate命令...这是一项烦人的任务,我必须一直在textMate中执行.]

Bri*_*n L 8

$ date -d '2005-06-30' +'%a %F'
Thu 2005-06-30
Run Code Online (Sandbox Code Playgroud)

请参阅man date其他格式选项.

此选项在Linux上可用,但在Darwin上不可用.在Darwin中,您可以使用以下语法:

date -j -f "%Y-%m-%d" 2006-06-30 +"%a %F"
Run Code Online (Sandbox Code Playgroud)

-f参数指定输入格式,+参数指定输出格式.

正如下面另一张海报所指出的,你最好使用%u(数周日)而不是%a来避免本地化问题.