【问题标题】:Convert specific date format to Epoch in linux在linux中将特定日期格式转换为Epoch
【发布时间】:2016-07-23 00:18:25
【问题描述】:

我需要将此日期格式转换为纪元:03/Apr/2016 14:22:59 命令

date -d "03/Apr/2016 14:22:59" +"%s"

将返回:

date: invalid date ‘03/Apr/2016 14:22:59

任何人都可以帮助我将其格式化为可以通过 date -d 识别的方式吗? 提前致谢。

【问题讨论】:

    标签: linux date command-line epoch


    【解决方案1】:

    Perl 的救援:

    perl -MTime::Piece -e 'print Time::Piece
                                 ->strptime("03/Apr/2016 14:22:59", "%d/%b/%Y %H:%M:%S")
                                 ->epoch'
    

    【讨论】:

      【解决方案2】:

      使用 Python:

      python -c 'from time import strftime, strptime;print strftime("%s", strptime("03/Apr/2016 14:22:59", "%d/%b/%Y %H:%M:%S"))'
      

      【讨论】:

        【解决方案3】:

        可以使用以下命令显示日期输入格式的信息页面:

        info date "Date input formats"
        

        很遗憾,date 不支持您的日期格式。但是,您可以将字符串转换为受支持的格式,例如:

        date -d "$(echo '03/Apr/2016 14:22:59' | tr -s "/" "-")" +"%s" 
        

        为了提供有关date 命令可以使用哪种输入字符串的信息,我将在这里写一个简短的摘要:

        显示从纪元开始的日期

        date -d "@1513936964"
        

        支持今天、明天、月份名称(一月)、上午/下午、时区名称等字词

        date -d "tomorrow 10:00:30PM"
        date -d "03 April 2016 14:22:59"
        

        日历格式

        date -d "04/03/2016 14:22:59"
        date -d "03-Apr-2016 14:22:59"
        date -d "2016-04-03 14:22:59.00"
        

        时区

        date -d "PDT now"
        

        去年圣诞节是哪一天?

        date -d "$(date -d "2017-12-24") -1 year" +"%A"
        

        【讨论】:

          猜你喜欢
          • 2015-08-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多