This should be a easy question, but I didn't find answer from googling. The date format I wan is: Month(letter), Year(numerical). For example, I want: November, 2014. Of course, I can manually achieve this requirement. But I think LaTeX can do better. Any ideas will be greatly appreciated. Thanks!
4 Answers
You can use the datetime package to customize the formatting; a little complete example:
\documentclass{book}
\usepackage{datetime}
\newdateformat{monthyeardate}{%
\monthname[\THEMONTH], \THEYEAR}
\begin{document}
\monthyeardate\today
\end{document}
produces

- 505,128
With datetime2 package, there is at least two ways to achieve this. The first is a bit similar to the answer by Gonzalo:
\documentclass[english]{book}
\usepackage{datetime2}
\makeatletter
\newcommand{\monthyeardate}{%
\DTMenglishmonthname{@dtm@month}, @dtm@year
}
\makeatother
\begin{document}
\monthyeardate
\end{document}

The other way, I think, is more LaTeXian:
\documentclass{book}
\usepackage[en-US]{datetime2}
\begin{document}
\today
\DTMlangsetup{showdayofmonth=false}
\today
\DTMlangsetup{showdayofmonth=true}
\today
\end{document}

Some notes:
- For the first way to work,
englishparameter for\documentclassseems to be required. Alternatively,englishcan be omitted anden-USoren-GBgiven fordatetime2as\usepackage[en-US]{datetime2} - The second way requires
en-USoren-GBeven whenenglishhas been given for\documentclass. - The ways were tested with
pdflatex, version pdfTeX 3.14159265-2.6-1.40.16 (TeX Live 2015).
More details are provided in:
- 115
- 411
- 4
- 5
-
This seems to be outdated. One way to get it in the new paradigm is
\usepackage[calc]{datetime2}, then\DTMsavenow{mytoday}and then\DTMmonthname{\DTMfetchmonth{mytoday}}~\DTMfetchday{mytoday}, \DTMfetchyear{mytoday}(obviously, leave out the fetching of the day if you don't want that). – Marius Hofert Jun 13 '21 at 10:11
A simple solution that requires no extra packages is the following:
\documentclass{article}
\renewcommand{\today}{\ifcase \month \or January\or February\or March\or %
April\or May \or June\or July\or August\or September\or October\or November\or %
December\fi, \number \year}
\begin{document}
\today
\end{document}
The result:
- 4,161
-
6
-
2
-
8Both of your comments are not helpful, in my opinion, as they don't say 'why' – Marius Hofert May 08 '21 at 12:22
-
2I would propose to simply create a new command rather than redefining \today – Atiyah Elsheikh Sep 23 '21 at 06:04
To make it easy for people new to Latex, I shall add a cw answer here incorporating Atiyah Elsheikh's comment on luchonacho's answer (this seems to be the best of both worlds to me).
\documentclass{article}
\newcommand{\monthyeardate}{\ifcase \month \or January\or February\or March\or %
April\or May \or June\or July\or August\or September\or October\or November\or %
December\fi, \number \year}
\title{}
\author{}
\date{\monthyeardate}
\begin{document}
\maketitle
\end{document}
- 374

\mydate{2014/11/14}should outputNovember, 2014? – Werner Nov 14 '14 at 18:37