Currently I put the date in my document using: \date{\today}
How do I display the date in the YYYY-MM-DD
format?
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It only takes a minute to sign up.
Sign up to join this communityCurrently I put the date in my document using: \date{\today}
How do I display the date in the YYYY-MM-DD
format?
edit: As noted by @Sean Allred, datetime
has been superseded by datetime2
.
Using the package datetime with the option yyyymmdd
as
\usepackage[yyyymmdd]{datetime}
you just change the value of \dateseparator
to replace the default /
by -
(or --
if you want).
\renewcommand{\dateseparator}{--}
Also as noted by @Vincent, you can define your own date format.
datetime
is now obsolete and has been replaced by datetime2
.
– Michael Mior
Mar 19 '18 at 14:54
My solution needs no packages. The only thing you need to know is that the primitive registers \day
, \month
and \year
include the desired information:
\def\mydate{\leavevmode\hbox{\the\year-\twodigits\month-\twodigits\day}}
\def\twodigits#1{\ifnum#1<10 0\fi\the#1}
The date in my format: \mydate.
According to the link of Sigur:
\usepackage{datetime}
\newdateformat{specialdate}{\THEYEAR-\twodigit{\THEMONTH}-\twodigit{\THEDAY}}
\date{\specialdate\today}
Use the package datetime2
\usepackage[style=iso]{datetime2}
datetime
since datetime
is now superseded and should no longer be used for new documents.
– Paul Gessler
Apr 6 '15 at 17:55
datetime2
to solve the problem in the question.
– user5359531
Aug 31 '17 at 2:22
style=iso
, but a numeric YYYY-MM-DD style is the default anyway, so it's not needed.
– Nicola Talbot
Jun 7 '18 at 11:30
\documentclass{article}\usepackage{datetime2}\begin{document}\today\end{document}
is a basic MWE that prints the current date as YYYY-MM-DD style. As for specific dates, the syntax is \DTMdate{2018-06-07}
but the formatting depends on the style. So while it does just display 2018-06-07 for the default style, if you change the style it will display the date in a different format.
– Nicola Talbot
Jun 7 '18 at 11:34
Use the package isodate
\usepackage[iso,german]{isodate}
It offers various options (and needs one of its language options) and commands to change the date format.
Recently (May, 2018), Donald P. Goodman III created the new package texdate
.
From the package documentation:
It can print dates, advance them by numbers of days, weeks, or months, determine the weekday automatically, and print them in (mostly) arbitrary format. It can also print calendars (monthly and yearly) automatically, and can be easily localized for non-English languages.
For example, the YYYY-MM-DD format of today is:
\documentclass{article}
\usepackage{texdate}
\begin{document}
\initcurrdate
\printfdate{ISOext}
\end{document}
A small contribution to wipet answer (three years later).
I change the two digit function to give two digit and only 2:
\def\twodigits[#1]{\ifnum#1<10 0\the#1\else\ifnum#1>100 \twodigits[\numexpr#1-100]\relax\else\the#1\fi\fi}
Example of use \twodigits[\year]
to obtain: 18 (and not 2018)
Thanks to wipet for the contribution.
\ifnum#1>99
instead of \ifnum#1>100
.
– Circumscribe
Jun 7 '18 at 10:39
yyyymmdd
makes\today
produceYYYY/MM/DD
date – Sigur Jan 4 '14 at 13:30