将 DateTime strftime 精度限制为毫秒

Arp*_*t M 3 perl datetime datetime-format

我正在开发一个涉及与第三方 API 集成的项目。作为合同的一部分,我需要在 HTTP 请求的 XML 正文中包含以下 ISO 格式的 UTC 日期字符串:

yyyy-MM-ddTHH:mm:ss.sssZ

我一直在尝试一些选项来re.pl生成上述格式的日期字符串。到目前为止,我已经能够想出这个:

use DateTime;

my $now_utc = DateTime->now(time_zone => 'UTC');

my $now_iso_format = $now_utc->strftime('%Y-%m-%dT%H:%M:%S.%sZ');
Run Code Online (Sandbox Code Playgroud)

当我在 中执行这些行时re.pl,我得到以下格式的日期字符串:

2022-02-07T03:55:22.1644206122Z

如何将精度限制为毫秒?如您所见,现在是纳秒。

zdi*_*dim 9

详细信息列在strftime 模式页面上,%N适用于小数秒数字

.. -> strftime('%Y-%m-%dT%H:%M:%S.%3NZ');
Run Code Online (Sandbox Code Playgroud)

  • 或者更简单:`strftime('%FT%T.%3NZ');` (2认同)