[英]RSS Date in Bash to epoch
尋找bash行以RSS日期格式(例如"Fri, 13 Sep 2013 17:16:45 GMT"
並將其轉換為毫秒嗎?
我嘗試了以下方法,它們不會在幾毫秒內產生。 我正在運行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"
RSS日期是否包含小數秒?
如果沒有,請使用BSD日期(例如Mac OS X):
echo $(date -j -f "%a, %d %b %Y %H:%M:%S" "Fri, 13 Sep 2013 17:16:45" +%s)000
或者,根據Mac OS X的聯機幫助頁:
echo $(date -j -f "%a, %d %b %Y %H:%M:%S %Z" "Fri, 13 Sep 2013 17:16:45 GMT" +%s)000
如果您有GNU日期,則以下更簡單的表達式將起作用:
echo $(date +%s -d "Fri, 13 Sep 2013 17:16:45 GMT")000
或者,您可以使用它,它將在原始時間字符串中使用小數秒:
echo $(($(date +%s%N -d "Fri, 13 Sep 2013 17:16:45.126 GMT")/1000000))
date命令以[s]分辨率為您提供時間。 如果該分辨率適合您,只需附加三個零即可。
date +%s -d "Fri, 13 Sep 2013 17:16:45 GMT" | sed 's/..*/&000/'
如果不是這樣,恐怕您必須使用系統調用gettimeofday()
編寫一個C程序。 我們稱之為gettimeofday.c
:
#include <sys/time.h>
#include <stdio.h>
int main(void)
{
struct timeval t;
gettimeofday(&t, NULL);
printf("%d%d\n", t.tv_sec, t.tv_usec / 1000);
return 0;
}
要編譯它,您需要gcc並進行以下操作:
make gettimeofday
接着:
./gettimeofday
再三考慮,我的小程序完全沒用,因為您要將給定的日期轉換為Unix時間。 但我會把它留在這里,因為它真好。 :-)
您可以使用awk在輸出末尾添加三個零,以毫秒為單位。
date +%s -d "Fri, 13 Sep 2013 17:16:45 GMT" | awk '{print $0"000"}'
或使用sed執行相同的操作:
date +%s -d "Fri, 13 Sep 2013 17:16:45 GMT" | sed -e "s|.*|&000|g"
以上在Mac OS X Lion中不起作用。 您必須安裝MacPorts的coreutil軟件包中的GNU date
。 然后,您將獲得gdate
。
相反,您可以使用python
來執行此操作:
python -c'import time; print "%f" % (time.mktime(time.gmtime())*1000.)'
如果您獲得date: illegal time format
在Mac OS X上出現date: illegal time format
錯誤消息,請嘗試使用LANG=C date
:
- echo $(date -j -f "%a, %d %b %Y %H:%M:%S %Z" "Fri, 13 Sep 2013 17:16:45 GMT" +%s)000 # date: illegal time format
+ echo $(LANG=C date -j -f "%a, %d %b %Y %H:%M:%S %Z" "Fri, 13 Sep 2013 17:16:45 GMT" +%s)000
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.