我想获取UNIX时间戳值(自1970年1月1日以来的秒数),以与当前时间偏移,同时将结果四舍五入到月初。
基本上,我需要此输出-从当前日期起两个月,但该月的第一天。
date -d "2019-04-01" "+%s"
1554102000
但是,我不想手动添加日期。我想做类似的事情:
date -d +"%Y%m" --date="+2 month" +"%s"
1555973219
但不幸的是,这给了我错误的时间戳(结果没有四舍五入到月初)。
答案 0 :(得分:2)
如果我了解您想要做什么。这样就可以完成,并始终为您提供从现在开始2个月的月份的秒数。
'none', 'inherit', 'circle', 'disc', 'decimal' ...
尽管似乎我们处于不同的时区。您可以添加时区,也可以将UTC标志添加到语句的xargs部分。
答案 1 :(得分:1)
在使用GNU date
时,这一切都可以正常工作:
set -x
date
start_of_2mo_hence=$(date -d 'now + 2 months' +%Y-%m-01)
start_of_2mo_hence_sec=$(date -d "$start_of_2mo_hence" +%s)
date -d "@$start_of_2mo_hence_sec"
...发出:
+ date
Fri Feb 22 17:04:49 CST 2019
++ date -d 'now + 2 months' +%Y-%m-01
+ start_of_2mo_hence=2019-04-01
++ date -d 2019-04-01 +%s
+ start_of_2mo_hence_sec=1554094800
+ date -d @1554094800
Mon Apr 1 00:00:00 CDT 2019
当然,这可以简化为:
start_of_2mo_hence_sec=$(date -d "$(date -d 'now + 2 months' +%Y-%m-01)" +%s)