How to write a non-today date in latex with localization formatting?
Here's how to do it using datetime
:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[USenglish,UKenglish,french,spanish,italian]{babel}
\usepackage[nodayofweek,level]{datetime}
\newcommand{\mydate}{\formatdate{3}{6}{1994}}
\begin{document}
\selectlanguage{USenglish}
\mydate
\selectlanguage{UKenglish}
\mydate
\selectlanguage{french}
\mydate
\selectlanguage{spanish}
\mydate
\selectlanguage{italian}
\mydate
\end{document}
Result:
Edit:
The datetime
package has now been replaced with datetime2
. This only requires a few minor changes to the above example:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[USenglish,UKenglish,french,spanish,italian]{babel}
\usepackage[useregional]{datetime2}
\newcommand{\mydate}{\DTMdisplaydate{1994}{6}{3}{-1}}
\begin{document}
\selectlanguage{USenglish}
\mydate
\selectlanguage{UKenglish}
\mydate
\selectlanguage{french}
\mydate
\selectlanguage{spanish}
\mydate
\selectlanguage{italian}
\mydate
\end{document}
The result looks like:
I've used the expandable version \DTMdisplaydate
. This can be used in PDF bookmarks. There's a robust non-expandable version \DTMdate
that has a slightly different syntax:
\newcommand{\mydate}{\DTMdate{1994-6-3}}
The result is the same.
We can use the isodate package too, whith the same results as in Nicola's answere:
\documentclass[USenglish,UKenglish,french,spanish,italian]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{isodate}
\begin{document}
\selectlanguage{UKenglish}
\printdate{1994-6-3}
\selectlanguage{USenglish}
\printdate{1994-6-3}
\selectlanguage{french}
\printdate{1994-6-3}
\selectlanguage{spanish}
\printdate{1994-6-3}
\selectlanguage{italian}
\printdate{1994-6-3}
\end{document}
The \printdate command allows many input formats.