【问题标题】:shell script to get year, date and month from YYYY-MM-DD format从 YYYY-MM-DD 格式获取年、日和月的 shell 脚本
【发布时间】:2013-09-10 06:42:51
【问题描述】:

我正在运行一个 shell 脚本,它接受“YYYY-MM-DD”格式的日期。从这个日期输入,我怎样才能分别得到年、月和日?

感谢您提前回复。

【问题讨论】:

    标签: shell date format


    【解决方案1】:

    除了将字符串作为文本处理(使用 grep/sed/awk/cut/...),您可以使用 date 命令:

    kent$  date -d '2013-09-06' +%Y
    2013
    
    kent$  date -d '2013-09-06' +%m
    09
    
    kent$  date -d '2013-09-06' +%d
    06
    

    【讨论】:

      【解决方案2】:

      您可以通过一个命令将它们存储在变量中:

      read YEAR MONTH DAY < <(date -d '2013-09-06' '+%Y %m %d')
      printf "%s\n" "$YEAR" "$MONTH" "$DAY"
      

      【讨论】:

        【解决方案3】:

        试试这个:

        dt="2011-2-3"
        arr=( $( date --date=$dt "+%Y  %m  %d") )
        echo "Year > $arr"
        echo "Month > ${arr[1]}"
        echo "Month > ${arr[2]}"
        

        【讨论】:

          【解决方案4】:

          我不想使用date 命令,所以我得到了以下代码。它使用 awk,我觉得它更适合这个任务。我假设您想将结果存储在变量中。

          inputDate=2017-07-06
          
          year=`echo $inputDate | awk -F\- '{print $1}'`
          month=`echo $inputDate | awk -F\- '{print $2}'`
          day=`echo $inputDate | awk -F\- '{print $3}'`
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2010-11-26
            • 2018-10-14
            • 2018-04-13
            • 1970-01-01
            • 1970-01-01
            • 2011-05-16
            • 1970-01-01
            • 2016-01-02
            相关资源
            最近更新 更多