如何使用两种不同的日期格式:yymmdd 和 dd/mm/yyyy?

如何使用两种不同的日期格式:yymmdd 和 dd/mm/yyyy?

我希望能够在同一文档中使用这两种日期格式:

  • 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}

结果如下:

在此处输入图片描述

但存在以下问题:

  1. 格式yymmdd不正确,因为我只实现了yyyymmdd如何获取年份只有两位数字的日期格式:yymmdd

  2. 命令的使用\today不会给出默认格式,但yymmdd格式。 有没有办法\today用默认格式(即dd/mm/yyyy)来定义,并用另一个命令来定义“本地”格式(即yymmdd)?

  3. 它使用两个包datetimedatetime2是否可以只使用一个包?

答案1

尝试一下这个代码。

b

此软件包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}

相关内容