我有一个完整的日期以及小时和分钟。我想添加秒数并将结果显示为日期“日.月.年 小时:分钟”。
“日期”似乎无法将秒数添加到给定的日期。
答案1
事实上,GNUdate
命令(这是 Ubuntu 中的标准实现)可以直接添加日期偏移量 - 例如将 3662 秒(1 小时,1 分钟,2 秒)添加到给定日期
$ date '+%d.%b.%Y %T' --date="2012-06-13 09:16:16 EDT + 3662 seconds"
13.Jun.2012 10:17:18
但是,时区和夏令时需要小心 - 更安全的选择可能是将原始时间转换为自纪元开始以来的秒数,并在转换回所需格式之前添加所需的偏移量,例如
$ secs=$(date +%s --date="2012-06-13 09:16:16")
$ date '+%d.%b.%Y %T' --date="@$((secs + 3662))"
13.Jun.2012 10:17:18
答案2
您还可以使用以下方式轻松增加当前日期:
date --date="+1 seconds" '+%Y-%m-%d %T'
man date
说这在 中有记录info date
,但我现在不想阅读info
手册来引用它:-)
在 Ubuntu 18.04 中date
从 Coreutils 8.28 进行测试。
答案3
像这样:
$ date +%x.%H:%M:%S:%N
01/21/2014_16:02:07:422856522
它为我显示了美国风格的数据,但看到授权以进一步完善。以下 2 个有趣的选项:
%N nanoseconds (000000000..999999999)
%S second (00..60)
如果您想使用标准年、月、日格式:
$ date +%Y.%m.%d_%H:%M:%S:%N
2014.07.21_16:07:52:641771706