在linux中,date
可以帮助我打印当前时间。如果要打印当前时间+1小时,我应该提供什么选项?
发布于 2013-04-22 16:57:12
在Linux上
只需使用-d
(或--date
)对日期进行一些数学运算:
date -d '+1 hour' '+%F %T'
# ^^^^^^^^^^^^
例如:
$ date '+%F %T'
2013-04-22 10:57:24
$ date -d '+1 hour' '+%F %T'
2013-04-22 11:57:24
# ^
在Mac OS上
警告,以上仅适用于Linux,不适用于Mac OS。
在Mac OS上,等效命令为
date -v+1H
发布于 2018-02-06 02:38:05
在shell脚本中,如果我们需要添加时间,则使用以下命令和日期格式(将时间放在日期字符串之前)
date -d"11:15:10 2017-02-05 +2 hours" +"%Y-%m-%d %H:%M:%S"
这将输出2017-02-05 13:15:10
如果没有协调世界时,THis不会产生正确的日期,它不会工作
发布于 2020-03-20 09:42:53
在一个命令中使用Linux和macOS
如果您需要编写在Linux服务器和macOS工作站上都能工作的脚本,您可以使第一个date
调用的错误静默,并对另一个调用执行“或”操作(||
)。哪个先来并不重要。
date -u -d "+${max_age}Seconds" +"%Y-%m-%dT%H:%M:%SZ" 2>/dev/null || \
date -u -v "+${max_age}S" +"%Y-%m-%dT%H:%M:%SZ"
例如,此bash函数将文件上传到AWS S3,并设置Expires:
和Cache-Control:
标头。
s3_upload_cache_control(){
local max_age_seconds="${1}" ;shift # required
local bucket_path="${1}" ;shift # required
local filename="${1}" ;shift # required
local remote_filename="/${1:-${filename}}" # optional
local fmt="+%Y-%m-%dT%H:%M:%SZ"
aws s3 cp \
"${filename}" \
"s3://${bucket_path}${remote_filename}" \
--expires "$( \
date -u -d "+${max_age_seconds}Seconds" $fmt 2>/dev/null || \
date -u -v "+${max_age_seconds}S" $fmt )" \
--cache-control max-age=$max_age,public \
--acl public-read
}
https://stackoverflow.com/questions/16142973
复制相似问题