Solaris
UNIX(非posix)從提供日期開始的一年中的哪一天?
我一直在尋找一種現有的解決方案來從 UNIX 平台上的現有日期獲取一年中的某一天(而不是儒略日期)。
我確定它存在,但我還沒有找到它,並且不確定在考慮閏年等的同時執行準確結果的數學。
你的標籤說
solaris
,所以我認為這是你正在使用的平台。如果您有標準安裝的 Solaris 11,那麼您可能已經
gdate
安裝了在我的安裝中:
lrwxrwxrwx 1 root root 15 Aug 3 13:21 /usr/bin/gdate -> ../gnu/bin/date*
所以你可以使用 GNUdate
-d
標誌:例如
% gdate +%j 222 % gdate -d "1970/06/23" +%j 174
如果你安裝了python:
python -c 'import datetime; d=datetime.date(2016, 8, 9); print(d.timetuple().tm_yday)'
或者如果您在環境變數中有日期:
DATE=2016-08-09 python -c 'import datetime; d=datetime.strptime("'"$DATE"'", "%Y-%m-%d"); print(d.timetuple().tm_yday)'
(你必須適應
%Y-%m-%d
能夠解析不同的格式)。兩者都
222
作為輸出。