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