Solaris

UNIX(非posix)從提供日期開始的一年中的哪一天?

  • November 24, 2017

我一直在尋找一種現有的解決方案來從 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作為輸出。

引用自:https://unix.stackexchange.com/questions/302266