![在 datetime2 中使用区域设置时更改日期样式](https://linux22.com/image/401370/%E5%9C%A8%20datetime2%20%E4%B8%AD%E4%BD%BF%E7%94%A8%E5%8C%BA%E5%9F%9F%E8%AE%BE%E7%BD%AE%E6%97%B6%E6%9B%B4%E6%94%B9%E6%97%A5%E6%9C%9F%E6%A0%B7%E5%BC%8F.png)
useregional
当我使用以给定语言显示日期的选项时,我似乎无法更改 datetime2 的设置babel
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[italian]{babel}
\usepackage[useregional]{datetime2}
%
\DTMnewdatestyle{mydatestyle}{
\renewcommand*{\DTMdisplaydate}[4]{##3 \DTMmonthname{##2}}
\renewcommand*{\DTMDisplaydate}{\DTMdisplaydate}
}
\DTMsetdatestyle{mydatestyle}
% -------------------
\begin{document}
\today
\end{document}
我希望输出为08 settembre
,8 前面有前导零,不带年份,但我仍然得到默认的8 settembre 2019
。
我究竟做错了什么?
答案1
嗯,您的代码中的主要问题如下:
- 您需要使用
calc
选项datetime2
。 - 使用
useregional=text
选项datetime2
。 - 移动命令
\DTMsetdatestyle{mydatestyle}
至 之后\begin{document}
。 - 使用命令
\DTMtwodigits{##3}
获取前导零......
请参阅以下 MWE
\documentclass[italian]{article}
\usepackage[T1]{fontenc}
\usepackage[italian]{babel}
\usepackage[%
useregional=text, % <=================================================
calc % <==============================================================
]{datetime2}
\DTMnewdatestyle{mydatestyle}{%
\renewcommand*{\DTMdisplaydate}[4]{\DTMtwodigits{##3} \DTMmonthname{##2}} % <============ year month day dow
\renewcommand*{\DTMDisplaydate}{\DTMdisplaydate}
}
\begin{document}
\DTMsetdatestyle{mydatestyle} % <=======================================
\today
\end{document}
及其结果: