在Shell中转换日期
这是一个hart,我如何转换日期,如在Shell中转换日期,shell,unix,date,Shell,Unix,Date,这是一个hart,我如何转换日期,如 12-23-11 13:37 例如(秒应始终为00) ?如果这是一个为您自己编写的脚本,而不是必须在一百万个不同环境中运行的脚本,那么根据可用的date版本,您应该能够使用它 阅读特定版本的date的手册页。例如,如果是在中记录的版本,则可以对输入字符串使用--date,等等 在Mac OS X上,使用-f选项指定输入格式,使用-j选项不尝试设置日期,并在命令行上指定输出格式 如果这是一个为您自己编写的脚本,而不是必须在一百万个不同环境中运行的脚本,那么根
12-23-11 13:37
例如(秒应始终为00)
?如果这是一个为您自己编写的脚本,而不是必须在一百万个不同环境中运行的脚本,那么根据可用的
date
版本,您应该能够使用它
阅读特定版本的date
的手册页。例如,如果是在中记录的版本,则可以对输入字符串使用--date
,等等
在Mac OS X上,使用
-f
选项指定输入格式,使用-j
选项不尝试设置日期,并在命令行上指定输出格式 如果这是一个为您自己编写的脚本,而不是必须在一百万个不同环境中运行的脚本,那么根据可用的date
版本,您应该能够使用它
阅读特定版本的date
的手册页。例如,如果是在中记录的版本,则可以对输入字符串使用--date
,等等
在Mac OS X上,使用
-f
选项指定输入格式,使用-j
选项不尝试设置日期,并在命令行上指定输出格式 使用gnu date 5.97,您可以执行以下操作:
$ date -d '11-12-23 13:37'
$date-d'11-12-23 13:37'
为了得到你想要的,你所需要做的就是按摩你的输入
由于gnu date并不普遍,下面是一个快速的perl脚本,它可以满足您的需要:
$ echo 12-23-11 13:37 |
perl -MTime::Local -wnE '
y/-:/ /;
@F=split;
say scalar localtime timelocal( 0, $F[4], $F[3], $F[1], $F[0] - 1,$F[2]);
'
Fri Dec 23 13:37:00 2011
$echo 12-23-11 13:37|
perl-MTime::Local-wnE'
y/-:/;
@F=分割;
比如标量本地时间timelocal(0,$F[4],$F[3],$F[1],$F[0]-1,$F[2]);
'
2011年12月23日星期五13:37:00
(对于-E和say,需要perl 5.10,但应使用-E和print在较旧的perl中工作。)对于gnu date 5.97,您可以执行以下操作: $ date -d '11-12-23 13:37' $date-d'11-12-23 13:37' 为了得到你想要的,你所需要做的就是按摩你的输入 由于gnu date并不普遍,下面是一个快速的perl脚本,它可以满足您的需要: $ echo 12-23-11 13:37 | perl -MTime::Local -wnE ' y/-:/ /; @F=split; say scalar localtime timelocal( 0, $F[4], $F[3], $F[1], $F[0] - 1,$F[2]); ' Fri Dec 23 13:37:00 2011 $echo 12-23-11 13:37| perl-MTime::Local-wnE' y/-:/; @F=分割; 比如标量本地时间timelocal(0,$F[4],$F[3],$F[1],$F[0]-1,$F[2]); ' 2011年12月23日星期五13:37:00
(对于-E和say,需要perl 5.10,但是应该在较旧的perl中使用-E和print。)但是我的日期是MM-DD-YY MM:SS这个示例只适用于YY-MM-DD MM:SS,因此使用短语“按摩你的输入”。但是我的日期是MM-DD-YY MM:SS这个示例只适用于YY-MM-DD MM:SS,因此使用短语“按摩你的输入”。