在KSH中添加1小时的当前时间戳

时间:2016-03-31 12:28:32

标签: unix ksh

如何在unix时间戳中添加1小时

date +%Y%m%d_%H%M

我需要以上述格式添加1小时

2 个答案:

答案 0 :(得分:0)

您的问题的字面答案是使用

date --date="next hour" +%Y%m%d_%H%M

但我猜你真的想在另一个时区显示时间。以UTC格式显示:

date --utc +%Y%m%d_%H%M

在另一个时区,例如

TZ="Europe/Stockholm" date +%Y%m%d_%H%M

当然假设系统时钟设置正确。

答案 1 :(得分:0)

De GNU日期变得简单易行。如果没有GNU日期,您可以操纵您的时区:

echo "$(TZ=GMT+1 date +%Y%m%d_%H%M)"

请注意夏令时。

当你得到昨天的日期(没有时间)时,你可以记住这个技巧。只需在时区添加24小时就可以在夏令时期间出现问题。您可以使用技巧找到昨天:

你确定昨天是20或30小时前。哪一个?好吧,最近的一个不是今天。

echo "$(TZ=GMT+30 date +%Y-%m-%d)\n$(TZ=GMT+20 date +%Y-%m-%d)" |
   grep -v $(date +%Y-%m-%d) | tail -1

以上命令适用于ksh。当您使用bash时,您需要echo -e。 或者使用printf:

printf "%s\n%s\n" "$(TZ=GMT+30 date +%Y-%m-%d)" "$(TZ=GMT+20 date +%Y-%m-%d)" |
   grep -v $(date +%Y-%m-%d) | tail -1