zoukankan      html  css  js  c++  java
  • shell中日期操作

    1. date -d操作

    date  +"%Y%m%d" -d  "+n days"         #今天的后n天日期  
    date  +"%Y%m%d" -d  "-n days"         #今天的前n天日期

    2. 常用日期格式输出

    date +"%F"                                #输出: 2012-06-08
    date +"%D"                                #输出: 06/08/12
    date +"%Y%m%d %H:%M:%S"                   #输出: 20120608 04:52:28
    date +"%Y%m%d"                            #输出: 20120608
    date +"%Y%m%d %H:%M:%S" -d "+1 hours"     #输出: 20120608 05:52:43
    date +"%Y%m%d %H:%M:%S" -d "+1 days"      #输出: 20120609 04:52:52
    date +"%Y%m%d %H:%M:%S" -d "+1 months"    #输出: 20120708 04:52:56
    date +"%Y%m%d %H:%M:%S" -d "+1 years"     #输出: 20130608 04:53:07
    date +"%T"                                #输出: 05:03:21
    date +"%F %T"                             #输出: 2012-06-08 05:03:34
    date +"%D %T"                             #输出: 06/08/12 05:03:39

     3. 日期格式转换

    # 字符串转时间戳
    date -d "2010-10-18 00:00:00" +%s   #输出:1287331200
    # 时间戳转字符串
    date -d @1287331200  "+%Y-%m-%d"    #输出:2010-10-18
    
    # 获取指定日期的后N天,如果是前N天,则第二部中间是 -
    步骤1:得到时间戳           seconds=`date -d "2010-10-18 00:00:00" +%s` 
    步骤2:
    加上N天的秒数86400*N   seconds_new=`expr $seconds + 86400*N`
    步骤3:
    获得指定日前加上一天的日前  date_new=`date -d @$seconds_new "+%Y-%m-%d"`

    4. 获取上月末和最近一年的日期

    dt_curr=20190322
    
    #当月初
    dt=`date -d"${dt_curr} -0 days" "+%Y%m01"`  
    #去年今月初
    dt_lastyear=`date -d"${dt} -1 years" "+%Y%m01"`
    #上月末
    lastday=`date -d "${dt} -1 day" "+%Y%m%d"`
    #去年今月末
    lastday_lastyear=`date -d "${dt_lastyear} -1 day" "+%Y%m%d"` 

    dt: 20190301

    dt_lastyear: 20180301

    lastday: 20190228

    lastday_lastyear: 20180228

  • 相关阅读:
    1088
    1082 read number in chinese
    1079 total sales of supply chain
    1075 pat judge
    1074 reverse list
    1071 speech pattern
    ts 之 多种泛型的处理方式
    玩一下node中的child_process
    玩转 js 位运算
    记录一下尝试的class和function分别作为构造函数方法
  • 原文地址:https://www.cnblogs.com/30go/p/8302729.html
Copyright © 2011-2022 走看看