我在本论坛和互联网上进行了搜索,但没有找到问题的答案。我希望在报告中使用 ISO 日期格式,例如 2018W083 作为今天 (2018-02-21) 的日期格式。我现在使用 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 解决方案。