在Bash中RSS日期纪元 [英] RSS Date in Bash to epoch

查看:119
本文介绍了在Bash中RSS日期纪元的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

寻找一个bash行采取了RSS的日期格式,如星期五,2013年9月13日17时十六分45秒GMT并把它转换成毫秒?

我试过的东西下面,他们不以毫秒为单位产生。我在运行Mac OS X雪豹10.6.8。

  524日期+%S -D星期五,2013年9月13日17点16分45秒GMT
  525日期+%S -d周五2013年9月13日17点16分45秒GMT
  526日期+%S -d周五2013年9月13日17点16分45秒
  527日期+%S -f星期五,2013年9月13日17时16分45秒GMT
  528日期+%S -f星期五,2013年9月13日17时16分45秒GMT
  514日期+%S -D星期五,2013年9月13日17时16分45秒GMT
  515日期+%S -D星期五,2013年9月13日17时16分45秒
  516日期+%S -ud星期五,2013年9月13日17时16分45秒GMT
  517日期+%S -ud星期五,2013年9月13日17时16分45秒
  512日-d星期五,2013年9月13日17时16分45秒格林尼治标准​​时间+%的


解决方案

请问RSS日期有分数秒?

,如果不使用BSD日期(即Mac OS X中):

 回声$(日期-j -f%A%D%A%Y%H:%M:%S,星期五,2013年9月13日17时十六分45秒+%S)000

或,根据本Mac OS X的手册页:

 回声$(日期-j -f%A%D%A%Y%H:%M:%S%Z,星期五,2013年9月13日17:16 :45 GMT+%S)000

如果你有GNU日期,下面简单而前pression将工作:

 回声$(日期+%S -D星期五,2013年9月13日十七时16分45秒GMT)000

或者你可以利用这一点,将与小数秒原时间字符串工作:

 回声$(($(日期+%S%N -d星期五,2013年9月13日17:16:45.126 GMT)/ 1000000))

Looking for a bash line to take a RSS date format such as "Fri, 13 Sep 2013 17:16:45 GMT" and convert it into milliseconds?

I've tried things as below they they do not produce in milliseconds. I'm running Mac OS X Snow Leopard 10.6.8.

  524  date +%s -d "Fri, 13 Sep 2013 17:16:45 GMT"
  525  date +%s -d "Fri 13 Sep 2013 17:16:45 GMT"
  526  date +%s -d "Fri 13 Sep 2013 17:16:45"
  527  date +%s -f "Fri, 13 Sep 2013 17:16:45 GMT"
  528  date +%s -f "Fri, 13 Sep 2013 17:16:45 GMT"
  514  date +%s -d "Fri, 13 Sep 2013 17:16:45 GMT"
  515  date +%s -d "Fri, 13 Sep 2013 17:16:45"
  516  date +%s -ud "Fri, 13 Sep 2013 17:16:45 GMT"
  517  date +%s -ud "Fri, 13 Sep 2013 17:16:45"
  512  date -d "Fri, 13 Sep 2013 17:16:45 GMT" "+%s"

解决方案

Does the RSS date have fractional seconds?

If not, using BSD date (i.e. Mac OS X):

echo $(date -j -f "%a, %d %b %Y %H:%M:%S" "Fri, 13 Sep 2013 17:16:45" +%s)000

or, according to the Mac OS X manpage:

echo $(date -j -f "%a, %d %b %Y %H:%M:%S %Z" "Fri, 13 Sep 2013 17:16:45 GMT" +%s)000

If you have GNU date, the following rather simpler expression will work:

echo $(date +%s -d "Fri, 13 Sep 2013 17:16:45 GMT")000

Or you could use this, which will work with fractional seconds in the original time string:

echo $(($(date +%s%N -d "Fri, 13 Sep 2013 17:16:45.126 GMT")/1000000))

这篇关于在Bash中RSS日期纪元的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆