答案1
该datetime2
软件包有一个用于对时间和日期进行计算的库,可以使用 加载\usepackage[calc]{datetime2}
。该库提供了两个函数来转换祖鲁时间 (UTC+0)。使用这些函数,您可以执行三步方法:首先将当地时间转换为祖鲁时间,其次将祖鲁时间转换为您想要显示的时区,第三步在请求的时区中实际显示第二步的结果。
在下面的 MWE 中,我定义了两个新命令,一个用于转换为任意时区,带有两个参数,分别为偏移量和反向偏移量,一个快捷命令,其参数预先填充了中欧夏令时(这有点奇怪,因为现在不是夏季,但无论如何它是 UTC+2,因此芬兰、波罗的海国家、大多数巴尔干国家、一些中东国家、埃及、利比亚)。
梅威瑟:
\documentclass[en-MT]{article}
\usepackage[calc,useregional]{datetime2}
\begin{document}
\DTMsetstyle{en-MT-numeric}
\newcommand{\DTMtznow}[2]{%
% store current time in object 'now'
\DTMsavenow{now}%
% convert current time to UTC+0
\DTMtozulu{now}{currzulu}%
% add requested timezone offset to zulu time
\DTMsaveaszulutime{currcest}{\DTMfetchyear{currzulu}}{\DTMfetchmonth{currzulu}}{\DTMfetchday{currzulu}}{\DTMfetchhour{currzulu}}{\DTMfetchminute{currzulu}}{\DTMfetchsecond{currzulu}}{#2}{00}%
% display zulu+offset in requested timezone (= reverse offset)
\DTMdisplay{\DTMfetchyear{currcest}}{\DTMfetchmonth{currcest}}{\DTMfetchday{currcest}}{}{\DTMfetchhour{currcest}}{\DTMfetchminute{currcest}}{\DTMfetchsecond{currcest}}{#1}{00}%
}
% shortcut command for central european summer time (UTC+2)
\newcommand{\DTMcestnow}{\DTMtznow{+02}{-02}}
in current timezone: \DTMnow
in CEST: \DTMcestnow
\end{document}
结果: