ISO 日期格式

ISO 日期格式

我在這個論壇和互聯網上進行了搜索,但沒有找到我的問題的答案。我希望在報告中使用 ISO 日期格式,例如今天 (2018-02-21) 的 2018W083。我現在使用 isodate 包來約會\usepackage[iso]{isodate}

如果這是重複的問題,請告訴我。我找不到。

答案1

這(令人驚訝地)並非微不足道。有週數宏但那裡的實施似乎有點不可靠。如果您願意使用 LuaLaTeX,那麼您可以進行系統呼叫來尋找週數(以及日期的其他部分)。

請注意,系統庫將星期日定義為 0,而 ISO 8601 將其定義為 7。

微量元素:

\documentclass{article}
\usepackage{luacode}
\newcommand{\weektoday}{\printdate{\the\year}{\the\month}{\the\day}}
\newcommand{\printdate}[3]{%
\luaexec{
timestamp = os.time{year=#1, month=#2, day=#3}
daynr = os.date("\%w",timestamp)
if daynr == "0" then daynr = "7" end
tex.sprint(os.date("\%YW\%V-",timestamp)..daynr)
}
}
\begin{document}
Today: \weektoday

Other date: \printdate{2018}{3}{4}
\end{document}

結果:

在此輸入影像描述


相容性說明:在 Windows 上,該%V格式未實作。相反,您可以使用%U(第一個星期日開始第 0 週)或%W(第一個星期一開始第 0 週),但兩者都與 ISO 標準不同(第一個星期四確定第 1 週)。您可以在 Lua 中手動計算 ISO 週數,但在這種情況下您也可以使用純 LaTeX 解決方案。

相關內容