将 DateTime strftime 精度限制为毫秒

Limit DateTime strftime precision to milliseconds

我正在从事一个涉及与第 3 方集成的项目 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');

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

2022-02-07T03:55:22.1644206122Z

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

详细信息列在 strftime patterns 页面上,%N 是小数秒数字

.. -> strftime('%Y-%m-%dT%H:%M:%S.%3NZ');