使用某些功能将日期字符串格式从 dd-mm-yyyy 转换为 dd.mm.yyyy

使用某些功能将日期字符串格式从 dd-mm-yyyy 转换为 dd.mm.yyyy

我需要将日期从一种格式转换为另一种格式。这是一个非常简单的问题,已在主题中解决Latex 将日期字符串格式从 mm/dd/yyyyy 转换为 dd/MM/yyyy。但是,我的情况有些特殊。日期是通过确定的\def\date#1{\def\thedate{#1}},在这种情况下会出现错误Paragraph ended before \todots was complete

\documentclass{article}

\def\date#1{\def\thedate{#1}}
\def\datetodots#1{\todots#1\relax}
\def\todots#1-#2-#3\relax{#1.#2.#3}

\begin{document}

\date{3-10-2023}

\thedate

\datetodots{\thedate}

\end{document}

这是一个最小的例子,但它是一个庞大类的一部分,在这个类中,编辑器用不同的命令定义不同的日期来处理文章,并通过不同的\def\date#1{\def\thedate{#1}}宏变体定义需要显示和保存到不同格式的文件中的一些日期。不使用 LaTeX3 是否可以解决这个问题xstring?我将感谢社区提供的帮助和提示。

答案1

您想在调用之前扩展参数\todots

\documentclass{article}

\def\date#1{\def\thedate{#1}}
\def\datetodots#1{\expandafter\todots\expanded{#1}\relax}
\def\todots#1-#2-#3\relax{#1.#2.#3}

\begin{document}

\date{3-10-2023}

\thedate

\datetodots{\thedate}

\datetodots{3-10-2023}

\end{document}

在此处输入图片描述

相关内容