datetime2 不会在 \DTMDisplaydate 中扩展月份

datetime2 不会在 \DTMDisplaydate 中扩展月份

我想在我的文档中使用字符串表示日期,以后可以将其格式化为 ISO 或德语。

我看了一下isodate datetimedatetime2最有希望的似乎是最新的,但月份没有显示在德语中。

然而在一份文件中

\usepackage{datetime2}
\DTMsetstyle{german}
\today
\DTMDisplaydate{2017}{3}{8}{-1} 

\today正确扩展为 8. März 2017,但\DTMDisplaydate{2017}{3}{8}{-1}结果为 8. 3 2017,这是不正确的,它应该是 heute 8. 3. 2017 或 8. März 2017

答案1

根据预期输出,只需使用\DTMdisplaydate而不是\DTMDisplaydate

2017 年 3 月 9 日
2017 年 3 月 8 日

\documentclass{article}

\usepackage[ngerman]{babel}% ...or load \usepackage[ngerman]{datetime2} below

\usepackage{datetime2}
\DTMsetstyle{german}

\begin{document}

\today

\DTMdisplaydate{2017}{3}{8}{-1}

\end{document}

答案2

为了datetime2-german\DTMDisplaydate应该与 相同\DTMdisplaydate,但我犯了一个错误(很可能是从另一个包含小写月份的语言文件中复制粘贴的)。最简单的方法是使用 Werner 的解决方案(只需使用\DTMdisplaydate)。如果您需要\DTMDisplaydate(例如,您可能要切换语言),请等待版本 1.1 2017-03-09(我刚刚上传)或重新定义样式:

\documentclass{article}

\usepackage[ngerman]{babel}
\usepackage[useregional]{datetime2}

\DTMrenewdatestyle
{german}%
{% 
  \renewcommand*\DTMdisplaydate[4]{%
    \DTMifbool{german}{showdayofmonth}%
    {\DTMgermanordinal{##3}\DTMgermandaymonthsep}%
    {}%
    \DTMgermanmonthname{##2}%
    \DTMifbool{german}{showyear}%
    {%
      \DTMgermanmonthyearsep
      \number##1 % space intended
    }%
    {}%
  }%
  \renewcommand{\DTMDisplaydate}{\DTMdisplaydate}%
}

\begin{document}

\today.
\DTMDisplaydate{2017}{3}{8}{-1} 

\end{document}

相关内容