ISO 날짜 형식

ISO 날짜 형식

이 포럼과 인터넷에서 검색했지만 내 질문에 대한 답변을 찾지 못했습니다. 내 보고서에서 오늘(2018-02-21)에 대해 2018W083과 같은 ISO 날짜 형식을 사용하려고 합니다. 지금은 날짜에 isodate 패키지를 사용합니다 \usepackage[iso]{isodate}.

중복된 질문인 경우 알려주시기 바랍니다. 나는 그것을 찾을 수 없었다.

답변1

이것은 (놀랍게도) 사소한 것이 아닙니다. 있다주 번호에 대한 매크로하지만 구현은 약간 신뢰할 수 없는 것 같습니다. LuaLaTeX를 사용하려는 경우 시스템 호출을 통해 주 번호(및 날짜의 다른 부분)를 찾을 수 있습니다.

시스템 라이브러리는 일요일을 0으로 정의하는 반면 ISO 8601은 이를 7로 정의합니다.

MWE:

\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주차에 시작함) 또는 (첫 번째 월요일이 0주차에 시작함) 을 사용할 수 있지만 %W둘 다 ISO 표준과 다릅니다(첫 번째 목요일이 1주차를 결정함). Lua에서 수동으로 ISO 주 수를 계산할 수 있지만 이 경우 순수 LaTeX 솔루션을 사용할 수도 있습니다.

관련 정보