2013-04-08 81 views
0

給定像'2013-04-06'這樣的字符串,我想將它轉換爲一個整數,就像我們在Java中可以做的那樣。我不知道該怎麼做這在bash shell.Does任何人都知道如何做到這一點?感謝您的任何幫助。如何將日期時間字符串轉換爲bash shell中的整數

+0

什麼樣的整數?這個問題沒有意義。你的意思是你想轉換爲unix時間嗎? – ormaaj 2013-04-08 02:52:54

回答

6
date --date="Wed Mar 13 00:18:06 2013" '+%s' 
date --date="2013-04-06" '+%s' 

僅適用於GNU日期。

3

要獲得秒和納秒,可以使用date命令。

date -d "2013-04-06" "+%s.%N" 

1365224400.000000000 

可以調整格式和截斷輸出到,例如,省略了小數,並且只使用納秒的前三個字符來提供毫秒。

date -d "2013-04-06" "+%s%N" | cut -b1-13 

1365224400000 
1

由於沒有具體提及與Java的互操作性,您可以考慮簡單地從您的值中刪除破折號和其他字符以獲得與您的值一致的整數。

假設前面的零是在必要時出現的(它們在你的例子中),這會給你一些數字,以表示在日期和時間上的總順序關係,並且它可以比Java的任意「數毫秒自1970年以來「。而且,這是人類可讀的,它實際上是標準格式的日期。

而且,對於一個完整的答案:

date_time="2013-04-06 00:00:01" 
integer=$(echo "$date_time" | sed 's/[^0-9]//g') 
相關問題