1

在 OpenBSD 上的 tcsh 中,我需要打印两周前的日期。

例如,如果今天是2013-03-02,我需要2013-02-16打印出来。

4

2 回答 2

0

这应该可以工作(它适用于 GNU 日期。我对 OpenBSD 不是很熟悉。所以不确定它是否适合你)

date -d "now - 14 days" +%Y-%m-%d
于 2013-04-15T11:43:08.640 回答
0

它似乎tcsh不允许执行嵌套命令,所以看起来ksh必须使用。

date +%Y-%m-%d ; \
sh -c 'date -r $(expr $(date +%s) - $(expr 60 \* 60 \* 24 \* 14)) +%Y-%m-%d'
2013-03-02
2013-02-16

我们以 UTC 中的 Epoch 以来的秒数获取日期,并使用 、减去以秒为单位计算两周,并使用参数expr将这些秒传回。date-r

不确定是否有更短的解决方案,除了使用1209600代替$(expr 60 \* 60 \* 24 \* 14)

sh -c 'date -r $(expr $(date +%s) - 1209600) +%Y-%m-%d'
于 2013-03-03T06:37:02.567 回答