我想要\date{2015-10-10}
打印10th October, 2015
或类似操作。我不想将日期值与插入文档的位置分开。
答案1
与其他答案类似(保存并立即在宏中打印),但用于datetime2
格式化:
\documentclass{article}
\usepackage[en-US]{datetime2}
\newcommand{\mydate}[1]{
\DTMsavedate{newdate}{#1}
\DTMusedate{newdate}
}
\begin{document}
\mydate{2015-10-10}
\mydate{2015-01-01}
\end{document}
印刷:
2015 年 10 月 10 日
2015 年 1 月 1 日
答案2
该\date
命令不会打印日期,而是将其参数存储在\@date
宏中。@
要使用的带有 , 的宏必须包含在\makeatletter
和 中\makeatother
。了解这一点后,您可以创建一个接受参数的命令,将其传递给\date
,然后打印该参数:
\documentclass{article}
\makeatletter
\newcommand{\printdate}[1]{\date{#1}\@date}
\makeatother
\begin{document}
Some text \printdate{2015-12-12} \printdate{2014-12-12}
\end{document}
请注意,这是一个整体解决方案,并且取决于您所使用的软件包,可能无法提供预期的结果。
答案3
在british
语言设置下datetime2
\DTMdisplaydate{YYYY}{MM}{DD}{DoW}
,您可以使用或设置日期样式\DTMdate{YYYY-MM-DD}
:
\documentclass{article}
\usepackage[british,calc]{datetime2}
\DTMlangsetup[en-GB]{ord=raise}
\DTMnewdatestyle{mydate}{%
% #1 = year
% #2 = month
% #3 = day
% #4 = day of week
\renewcommand{\DTMdisplaydate}[4]{%
\DTMordinal{##3} \DTMenglishmonthname{##2}, \number##1}%
}
\begin{document}
\today% ...or \DTMtoday
% \DTMdisplaydate{YYYY}{MM}{DD}{DOW}
\DTMdisplaydate{2015}{10}{10}{-1}
% \DTMdate{YYYY-MM-DD}
\DTMdate{2015-10-10}
\DTMsetdatestyle{mydate}% Set new date style
\DTMdate{2015-10-10}
\end{document}