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?
我正在使用date +"%Y%m%d%H"
生成字符串並讀取相同的字符串以將其轉換回日期。以某種方式反向不工作。並且%Y被視爲前六個字符如何在正確的shell中格式化字符串
# date +"%Y%m%d%H"
2017030216
# date -d 2017030215 +%Y
201703
# date -d 2017030215 +%m
02
爲什麼不會返回2017?
您正在將無效字符串傳遞給-d
,即與預期格式不符的字符串。該格式的文檔位於:https://www.gnu.org/software/coreutils/manual/html_node/Date-input-formats.html
「2017030215」在大多數系統中不是有效的日期/時間字符串,並且date -d
也不例外。如果您想查看date -d
是如何解釋您的字符串的,只需運行它即可,不需要+
選項即可查看完整的輸出。你可能會感到驚訝。