文本和地址块中的日期格式

文本和地址块中的日期格式

在我生成的信件中我使用\formatdate{\MDay}{\MMonth}{\MYear}。在标题中我具体说明了\usepackage[nodayofweek,level]{datetime}

我已经得到了像2012 年 5 月 10 日,但我只想2012 年 5 月 10 日。地址块中也存在同样的问题,实际日期是在哪里自动生成的。

我该如何检查?

答案1

逗号作为分隔符实际上是硬编码到的各种定义中的\formatdate,但您可以使用etoolbox包将其删除。

\documentclass{article}

\usepackage[nodayofweek,level]{datetime}

\usepackage{etoolbox}
\patchcmd{\formatdate}{,}{}{}{}

\begin{document}

\today

\end{document}

在此处输入图片描述

答案2

您可以使用以下定义\ddmmmyyyydate来实现(并重新格式化)您所追求的目标:

在此处输入图片描述

\documentclass{article}
\usepackage[nodayofweek,level]{datetime}% http://ctan.org/pkg/datetime
\makeatletter
\DeclareRobustCommand*{\ddmmmyyyydate}{%
  \renewcommand*{\formatdate}[3]{%
    \ifshowdow\shortdayofweekname{##1}{##2}{##3} \fi
    \@day=##1\relax\@month=##2\relax\@year=##3\relax
    \ordinaldate{\the\@day}\ \shortmonthname[\@month] \the\@year}
}
\makeatother
\begin{document}
\today

\ddmmmyyyydate

\today
\end{document}

选择englishisodate默认打印此输出。或者,\isospacebeforeyear也可以使用来修改月份和年份之间的分隔符:

在此处输入图片描述

\documentclass{article}
\usepackage[english]{isodate}% http://ctan.org/pkg/isodate
\begin{document}
\today

\isospacebeforeyear{, }

\today
\end{document}

相关内容