Linux bash中的日期时间


26

我正在尝试以以下形式显示日期时间

2013/07/08 16:52:13

通过在bash脚本中使用命令:

dt=`date '+%d/%m/%Y_%H:%M:%S'`

哪个变量用于填充CSV文件。

日期和时间之间唯一接受的字符是“ _”(下划线)或“-”,输出为

07/08 / 2013_16:52:13

如何获得日期和时间之间的空间?我几乎(我希望)尝试了一切。


5
_who只能接受”和“-”字符?是什么阻止您将date格式字符串中的“ _”替换为“” ?
manatwork

没有什么可以阻止在命令中包含“”,它们只是不会出现在输出中。试试date +“%b%e”,今天您将获得“ Sep 4”(一个空格),而不是所需的2。我在脚本中使用它,而我的解决方案是分3个步骤进行操作(我实际上将它们组合成一行代码,但您会明白这一点)。
Jim2B

敬请注意,这个问题如何获得20票?以及它如何进入重新打开队列的?
G-Man说“恢复莫妮卡”

Answers:


49
#!/bin/bash

dt=$(date '+%d/%m/%Y %H:%M:%S');
echo "$dt"

猜猜问题出在“呼应” csv。


3
如果需要毫秒,请使用date '+%F %T.%3N'。如果需要微秒,请使用date '+%F %T.%6N'。如果需要纳秒,请使用date '+%F %T.%N'%F表示日期,它给出了YYYY-MM-DD,您可以用来%D代替MM-DD-YYYY%T表示时间,HH:MM:SS
Computingfreak

4

这有效:

#!/bin/bash
dt=`date '+%d/%m/%Y %H:%M:%S'`
echo "$dt"

也可以使用$()代替`和`。


我忘了提一句,在应用awk / home / pi / SB_tool / sunnybeamtool / bin / sunnybeamtool -l之后,它出了错。awk -v tot = $ tot -v dt = $ dt -v day = $ day -v mth = $ mth'以下错误08/08/2013 23:03:03 awk:第1行:或附近的语法错误:
亨利

通过分配2个单独的值dt和tm来解决。awk不接受1个变量,其2个值之间用空格分隔
亨利
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.