如何打印带有缩写月份的给定日期

如何打印带有缩写月份的给定日期

我能做的最好的事情就是使用 isodate。这是我能找到的唯一一个可以在任意日期工作的包。

\usepackage[orig, british, cleanlook]{isodate}
\printdate{2013-06-28}

生成:

28 June 2013

我希望将月份缩写以匹配我们现有的文档格式。我希望最终得到:

28 Jun 2013

所有月份都缩写了。我在想也许我需要为 isodate 创建自定义语言,但肯定有更好的方法。

更新:

我还查看了 datetime 包的 \formatdate 命令。不幸的是,日期以实心字符串的形式出现,我无法将其拆分为命令所需的单独字段。

我对以下情况会感到满意:

\formatdate{\getday{2013-06-28}}{\getmonth{2013-06-28}}{\getyear{2013-06-28}}

可以将其定义为一个更易于使用的新命令。

答案1

您可以更新英语月份查找以满足您的需要:

在此处输入图片描述

\documentclass{article}
\usepackage[orig, british, cleanlook]{isodate}% http://ctan.org/pkg/isodate
\begin{document}

\printdate{2013-06-28}% Old date format

\makeatletter
% Update English month lookup
\def\month@english{\ifcase\month\or
    Jan\or Feb\or Mar\or Apr\or May\or Jun\or
    Jul\or Aug\or Sep\or Oct\or Nov\or Dec\fi}
\makeatother

\printdate{2013-06-28}% New date format

\end{document}

以上内容建议对英文月份查询进行全局更改。如果您想要更本地化的版本,您可以在文档序言中包含以下内容:

\makeatletter
\def\short@month@english{\ifcase\month\or
    Jan\or Feb\or Mar\or Apr\or May\or Jun\or
    Jul\or Aug\or Sep\or Oct\or Nov\or Dec\fi}
\newcommand{\printshortdate}[1]{{%
  \let\month@english\short@month@english% Update English month lookup (locally)
  \printdate{#1}}}% Call traditional \printdate
\makeatother

它允许您交替使用\printdate和/或\printshortdate。在调用传统宏之前暂时\printshortdate更新\month@english(注意嵌套的括号) 。{..}\printdate

答案2

只是为那些不想明确更改查找表并使用的人提供另一个答案约会时间包,我建议使用命令\短日期

\documentclass{article}
\usepackage[nodayofweek]{datetime}

\begin{document}
    \formatdate{2013}{06}{28}

    \shortdate\formatdate{2013}{06}{28}
\end{document}

在此处输入图片描述

编辑:为了产生与原始问题中要求的相同的格式,datetime 包要求您定义一种新格式而不是 \shortdate。

\documentclass{article}
\usepackage[nodayofweek]{datetime}

% Define your own date format
\newdateformat{mydate}{\THEDAY\ \shortmonthname[\THEMONTH]\ \THEYEAR}

\begin{document}
    \formatdate{28}{06}{2013}

    % Use your own format
    \mydate\formatdate{28}{06}{2013}
\end{document}

在此处输入图片描述

通过这种方式,您还可以完全按照自己的需要定义日期格式。


这是类似的版本datetime2

\documentclass{article}
\usepackage[british]{babel}
\usepackage[useregional]{datetime2}

\begin{document}
    \DTMlangsetup[en-GB]{ord=raise,monthyearsep={,\space}}
    \DTMdate{2013-06-28}

    \DTMlangsetup[en-GB]{abbr,ord=omit,monthyearsep={\space}}
    \DTMdate{2013-06-28}
\end{document}

编辑:在这里,简单的选项ord=omit删除了-来自序数词的后缀。

相关内容