我希望能够在同一文档中使用这两种日期格式:
- dd/mm/yyyy(默认格式)
- yymmdd(作为“本地”格式)
我为什么想要这个?
因为我想使用“本地”格式来定义文档参考代码(例如mydocumenttitle_yymmdd.pdf
),但在“普通”文本中,我想使用dd/mm/yyyy
命令的默认格式\today
。
第一次尝试
目前我无法做得比这更好:
\documentclass{article}
\usepackage{datetime}
\newdate{specialdate}{\day}{\month}{\year}
\usepackage[datesep={}]{datetime2}
\begin{document}
Format with dd/mm/yyyy: {\ddmmyyyydate\displaydate{specialdate}}
Format with yymmdd: \today
\end{document}
结果如下:
但存在以下问题:
格式
yymmdd
不正确,因为我只实现了yyyymmdd
。如何获取年份只有两位数字的日期格式:yymmdd
?命令的使用
\today
不会给出默认格式,但yymmdd
格式。 有没有办法\today
用默认格式(即dd/mm/yyyy
)来定义,并用另一个命令来定义“本地”格式(即yymmdd
)?它使用两个包
datetime
和datetime2
。 是否可以只使用一个包?
答案1
尝试一下这个代码。
此软件包datetime
已过时。只datetime2
需要。
已经定义了两种样式来呈现所需的日期格式--默认(ddmmyyyyx
)和本地(yymmdd
)--。
\DTMsetstyle{<name>}
在序言中使用设置默认样式。
\documentclass{article}
\usepackage{datetime2}
\DTMnewstyle{yymmdd}{%
\renewcommand*\DTMdisplaydate[4]{%
\DTMtwodigits{##1}\DTMtwodigits{##2}\DTMtwodigits{##3}%
}
\renewcommand*{\DTMDisplaydate}{\DTMdisplaydate}%
}
{}{}{}
\newcommand{\daymonthyearsep}{/} % define the separator
\DTMnewstyle{ddmmyyyyx}{%
\renewcommand*\DTMdisplaydate[4]{%
\DTMtwodigits{##3}\daymonthyearsep\DTMtwodigits{##2}\daymonthyearsep\number##1%
}%
\renewcommand*{\DTMDisplaydate}{\DTMdisplaydate}%
}
{}{}{}
\DTMsetstyle{ddmmyyyyx}% set as default style
\begin{document}
Default style \emph{ddmmyyyyx}: \today
\bigskip
Now a local style \emph{yymmdd}: {\DTMsetstyle{yymmdd} \today}%local style <<<<<<<<<<<<<<<<
\bigskip
Default style again \emph{ddmmyyyyx}: \today
\end{document}