ISO-Datumsformat

ISO-Datumsformat

Ich habe in diesem Forum und im Internet gesucht und keine Antwort auf meine Frage gefunden. Ich möchte in meinen Berichten ein ISO-Datumsformat wie 2018W083 für heute (21.02.2018) verwenden. Ich verwende jetzt das Isodate-Paket für meine Daten \usepackage[iso]{isodate}.

Wenn es sich um eine doppelte Frage handelt, lassen Sie es mich bitte wissen. Ich konnte sie nicht finden.

Antwort1

Das ist (überraschenderweise) nicht trivial. Es gibtMakro für Wochennummeraber die Implementierung dort scheint etwas unzuverlässig zu sein. Wenn Sie LuaLaTeX verwenden möchten, können Sie einen Systemaufruf durchführen, um die Wochennummer (und andere Teile des Datums) zu ermitteln.

Beachten Sie, dass die Systembibliothek Sonntag als 0 definiert, während ISO 8601 ihn als 7 definiert.

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}

Ergebnis:

Bildbeschreibung hier eingeben


Hinweis zur Kompatibilität:Unter Windows %Vist das Format nicht implementiert. Stattdessen können Sie %U(erster Sonntag beginnt Woche 0) oder %W(erster Montag beginnt Woche 0) verwenden. Beide unterscheiden sich jedoch vom ISO-Standard (erster Donnerstag bestimmt Woche 1). Sie können die ISO-Wochennummer manuell in Lua berechnen, aber in diesem Fall können Sie genauso gut eine reine LaTeX-Lösung verwenden.

verwandte Informationen