zoukankan      html  css  js  c++  java
  • shell中date命令对month进行加减操作的bug

    shell脚本中如何取上个月的月份呢?很容易能想到下面的命令:
    date +%Y%m -d '-1 month'
    或者
    date +%Y%m -d 'last month'
     
    在大部分情况下这个命令运行正确。但是有些情况下这个命令会出现问题,比如当前日期是3月30、3月31、5月31等的时候,上面的命令得到的结果还是当月,而不是我们期望的上月。
     
    这个问题是怎么产生的呢?比如当当前日期是5月31时,-1 month它只是将月份-1,就得到4月31,但是实际上4月只有30天,所以4月31就被转为5月1号,导致得到的结果还是当前月份。
     
    为了解决这个问题,可以这么写(先转到当月1号的日期再减):
    date +%Y%m -d "`date +%Y%m`01 -1 month"
    或者 
    date +%Y%m -d "`date +%Y%m`01 -1 day"
  • 相关阅读:
    新的学习计划
    Python学习搬家啦
    安装数据库软件
    oracle11g RAC之grid安装
    PG源码编译安装
    vnc图形化远程centos7.6步骤
    postgresql 日期格式
    centos配置yum源
    pg创建多个实例
    PostgreSQL配置
  • 原文地址:https://www.cnblogs.com/djwhome/p/9579126.html
Copyright © 2011-2022 走看看