使用 datetime2 以正确的区域样式显示自定义日期

使用 datetime2 以正确的区域样式显示自定义日期

我正在尝试以datetime2适当的区域样式显示自定义日期,方法是使用通过 定义的语言设置polyglossia,或通过datetime2选项列表传递语言设置。到目前为止还没有成功。

我尝试使用polyglossia语言设置:

\documentclass{article}
\usepackage{fontspec}

\usepackage{polyglossia}
\setmainlanguage{german}

\usepackage{datetime2}
\DTMsavedate{customdate}{2016-03-31}

\begin{document}
\DTMusedate{customdate}
\end{document}

日期以default数字样式显示,格式为 2016-03-31。

我尝试使用datetime2选项列表,而不依赖于polyglossia

\documentclass{article}
\usepackage{fontspec}

\usepackage[german]{datetime2}
\DTMsavedate{customdate}{2016-03-31}

\begin{document}
\DTMusedate{customdate}
\end{document}

仍然没有成功,日期仍然显示为 2016-03-31。

任何能为我指明正确方向的帮助都将非常感激。

PS:我正在使用 XeTeX 编译该文档。

答案1

我一开始无法重现你的问题,你的 MWE 返回2016 年 3 月 31 日pdflatex和中。如果您想要数字格式,则可以使用以下xelatex选项,结果为useregional=numeric2016 年 3 月 31 日。如果您不喜欢/分隔符,您可以使用style=ddmmyyyy用作-分隔符的。

但是,当我尝试未安装的 datetime2 语言模块(例如)时,我可以重现该问题usepackage[french]{datetime2}。然后使用默认样式,即 yyyy-mm-dd。软件包会在终端中对此发出警告,但它不会终止编译过程,也许您错过了这一点。

使用 TexLive 或 MikTeX 中的图形包管理器可以轻松安装tlmgr install datetime2-german。Ubuntu 的存储库中(目前)没有 datetime2。

笔记:

  • xelatex可能需要usepackage{fontspec}(但不是必需的 pdflatex
  • xetex无法编译你的 MWE,因为它不知道usepackage
  • documentclass请在您的 MWE 中包含

代码:

\documentclass{article}
%\usepackage{fontspec}                                %%% for xelatex
\usepackage[german]{datetime2}                        %%% 31. März 2016
%\usepackage[german,useregional=numeric]{datetime2}   %%% 31/3/2016
%\usepackage[german,style=ddmmyyyy]{datetime2}        %%% 31-03-2016
\DTMsavedate{customdate}{2016-03-31}

\begin{document}
\DTMusedate{customdate}
\end{document}

相关内容