如何以 YYYY-MMM-DD 格式打印日期?

如何以 YYYY-MMM-DD 格式打印日期?

有没有一种简单的方法可以打印出 2014-Jan-15 格式的日期。在北美,加拿大而不是美国,使用的日期格式太多了。为了消除任何混淆的可能性,客户希望使用 YYYY-MMM-DD。

我可以让我的程序创建的 Latex PDF 在 Debin Linux 而不是 Windows 上运行。

答案1

使用datetime包裹:

\documentclass{article}

\makeatletter
\newcommand\FormatDate[3]{%
  #1-\shortmonthname[#2]-\two@digits{#3}}
\makeatother

\usepackage{datetime}
\newdateformat{gregdate}{\FormatDate{\THEYEAR}{\THEMONTH}{\THEDAY}}

\newcommand\Demonstrate[3]{%
  Date #1-#2-#3 formats as \FormatDate{#1}{#2}{#3}.\par}
\setlength\parindent{0pt}

\begin{document}
\Demonstrate{2015}{01}{01}
\Demonstrate{2015}{02}{02}
\Demonstrate{2015}{03}{03}
\Demonstrate{2015}{04}{04}
\Demonstrate{2015}{05}{05}
\Demonstrate{2015}{06}{06}
\Demonstrate{2015}{07}{07}
\Demonstrate{2015}{08}{08}
\Demonstrate{2015}{09}{09}
\Demonstrate{2015}{10}{10}
Today is {\gregdate\today}.
\end{document}

输出


如果您希望重命名月份,您可以重新定义\shormonthnameenglish以满足您的需要。(babel如有必要,您可以修补所使用的其他宏;dt-austrian.def例如,请参阅。)

\renewcommand*{\shortmonthnameenglish}[1][\month]{%
  \@orgargctr=#1\relax
  \ifcase\@orgargctr
  \PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month
  numbers should go from 1 (jan) to 12 (dec)}%
  \or Jan%
  \or Feb%
  \or Mar%
  \or Apr%
  \or May%
  \or Jun%
  \or Jul%
  \or Aug%
  \or Sept%
  \or Oct%
  \or Nov%
  \or Dec%
  \else%
  \PackageError{datetime}%
  {Invalid Month number \the\@orgargctr}%
  {Month numbers should go from 1 (jan) to 12 (dec)}%
\fi
}

答案2

看一下isodate包裹:

\documentclass[english]{article}
\usepackage{babel}
\usepackage{isodate}

\begin{document}

\isodate \today

\end{document}

异酸

答案3

查看后,article.cls您会找到宏的定义\today。您可以重新定义该宏以适合您的口味,甚至可以定义一个新宏(例如\mydate),以您要求的样式打印以通常格式插入的日期。

\documentclass{article}
\let\oldtoday\today
\def\today{%
  \number\year-\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%
  -\number\day%
}
\newcommand{\mydate}[3]{%
  \number#1-\ifcase#2\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%
  -\number#3%
}
\begin{document}
\today{} vs. \mydate{2015}{01}{21}
\end{document}

代码输出

相关内容