2017-03-03 46 views
0

我正在使用date +"%Y%m%d%H"生成字符串並讀取相同的字符串以將其轉換回日期。以某種方式反向不工作。並且%Y被視爲前六個字符如何在正確的shell中格式化字符串

# date +"%Y%m%d%H" 
2017030216 

# date -d 2017030215 +%Y 
201703 

# date -d 2017030215 +%m 
02 

爲什麼不會返回2017?

回答

2

您正在將無效字符串傳遞給-d,即與預期格式不符的字符串。該格式的文檔位於:https://www.gnu.org/software/coreutils/manual/html_node/Date-input-formats.html

「2017030215」在大多數系統中不是有效的日期/時間字符串,並且date -d也不例外。如果您想查看date -d是如何解釋您的字符串的,只需運行它即可,不需要+選項即可查看完整的輸出。你可能會感到驚訝。

相關問題