datetime2:定义并明确使用日期格式

datetime2:定义并明确使用日期格式

由于datetime被 取代datetime2,我正在努力使用新包实现以下目标:

在英文文档中,我想像\today这样显示一次当前日期()2017 年 12 月 20 日并且一旦像这样2017-12-20

根据文档,对于整个文档,我只能以一种方式全局正确执行。我没有找到一个简单的示例来告诉我如何完成此操作。

答案在https://tex.stackexchange.com/a/250057摆弄\@dtm@month等。有那么难吗?应该很简单

答案1

您无需定义新格式。您可以使用区域英语日月格式之一,例如en-GB,用于文本日期和iso数字 ISO 样式日期:

\documentclass{article}

\usepackage[en-GB]{datetime2}

\DTMlangsetup[en-GB]{ord=level}

\begin{document}
\today. \DTMsetstyle{iso}\today.

\end{document}

要求datetime2datetime2-english已安装。

2017年12月20日。2017-12-20。

答案2

为了提出一个简短的例子,我自己解决了它:

\documentclass[english]{scrartcl}
\usepackage[showdow,en-GB]{datetime2}
\DTMlangsetup[en-GB]{ord=raise}

\DTMnewdatestyle{myShortDate}{%
\renewcommand{\DTMdisplaydate}[4]{\number##1-\number##2-\number##3}%
\renewcommand{\DTMDisplaydate}{\DTMdisplaydate}%
}

\DTMnewdatestyle{myLongDate}{%
\renewcommand*{\DTMenglishfmtordsuffix}{\DTMenGBfmtordsuffix}%
\renewcommand{\DTMdisplaydate}[4]{\DTMenglishordinal{##3}\ \DTMenglishmonthname{##2}\ \number##1}%
\renewcommand{\DTMDisplaydate}{\DTMdisplaydate}%
}


\begin{document}
{\DTMsetdatestyle{myShortDate}\today}\par
\today\par
{\DTMsetdatestyle{myLongDate}\today}\par
\end{document}

虽然它不像 Nicola Talbot 的回答那么简短

相关内容