我能做的最好的事情就是使用 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
删除了日-来自序数词的后缀。