【问题标题】:I want to print last month last date with time stamp '23:59:59' using command我想使用命令打印上个月的最后一个日期,时间戳为“23:59:59”
【发布时间】:2019-05-09 07:27:31
【问题描述】:

下面是我的输出,但我想得到像Apr 30 23:59:59 这样的输出。 请推荐

date -d "$(date +%Y-%m-01) -1 day"

输出: Tue Apr 30 00:00:00 UCT 2019

我要输出:Tue Apr 30 23:59:59 UCT 2019

【问题讨论】:

  • -1 day 更改为-1 second 是否会提供您想要的输出?
  • 是的,我明白了,非常感谢@barbsan
  • 我想像 20190430 一样打印(上个月的最后一天可以是 28 或 30 或 31)
  • 如果你输入date --help,你会看到手册,滚动到FORMAT部分(注意你必须在命令你的日期命令中使用+" 所需格式 ")

标签: linux datetime-format date-manipulation


【解决方案1】:

您需要将另一个 + 格式传递给日期,并将时间替换为 23:59:59。像这样的:

date -d "$(date +%Y-%m-01) -1 day" +"%a %b %d 23:59:59 %Z %Y"

输出将是:

Tue Apr 30 23:59:59 -03 2019

更新:要使用格式 YYYYMMDD 的上个月的最后一天,只需将最后一个格式字符串更改为 '%Y%m%d'。这是完整的命令:

date -d "$(date +%Y-%m-01) -1 day" +"%Y%m%d"

这是输出:

20190430

【讨论】:

  • 我想像 20190430 一样打印(上个月的最后一天可以是 28 或 30 或 31)
  • 只要把最后一个格式字符串改成+'%Y%m%d' 这样就可以了。
猜你喜欢
  • 2020-02-12
  • 2016-07-16
  • 2016-05-03
  • 2013-10-19
  • 1970-01-01
  • 2021-07-05
  • 1970-01-01
  • 1970-01-01
  • 2013-12-06
相关资源
最近更新 更多