编写shell脚本以上午或下午表示法显示时间

时间:2013-02-24 20:58:02

标签: bash

我正在尝试编写一个shell脚本,它显示上午或下午的时间,而不是使用date命令显示的方式。我不确定我该怎么办呢。我想首先,如何从date命令中提取时间来操作它?如何提取小时数来操纵它?

7 个答案:

答案 0 :(得分:9)

您正在寻找的是

man strftime

代表字符串格式时间,这是date使用的格式。

因此,要获取当前的AM / PM,请使用以下命令:

date +"%p"

ampm=`date +"%p"`
echo $ampm

小时可以是几种格式中的一种(你想要12或24小时的时间,是否领先零?)我猜你想要非领先零12小时的时间:

date +"%l"

答案 1 :(得分:7)

您可以使用下面的一个以AM和PM格式打印时间长达几分钟。

echo $(date  +"%I:%M %p")

OutPut :09:20 PM

echo $(date  +"%r")

输出:09:20:09 PM

或    echo $(日期+“%I%p”)

输出:09 PM

答案 2 :(得分:3)

  

而不是使用日期命令显示它的方式

date命令采用格式字符串。根据给定的时间值或当前区域设置的相应字符串,提供%p将显示“AM”或“PM”。中午被视为“PM”,午夜被视为“AM”:

% date +'%H:%M %p'
08:01 am

“引擎盖下”,这会调用strftime()。有关更多格式选项,请参见手册页。

答案 3 :(得分:2)

这取决于区域设置。

LC_TIME="C" date +%l%p
LC_TIME="C" date +'%l:%M %p'

答案 4 :(得分:1)

您可以使用date命令的“+”格式化选项。 E.g:

 > date +%l%p
-> 7PM

答案 5 :(得分:0)

要获取上午或下午的上午或下午,请尝试以下操作 日期+%#p

答案 6 :(得分:0)

使用日期+“%P”大写字母P显示上午或下午