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:

Image of 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:

Image of result

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.

enter image description here