gpt4 book ai didi

windows - 为什么 Perl 的 POSIX::strftime %F 说明符在 Windows 上不起作用?

转载 作者:可可西里 更新时间:2023-11-01 12:41:08 27 4
gpt4 key购买 nike

我是 Mac::PropertyList 的作者解析 Apple 属性列表格式的模块。我将其设计为跨平台工作,但我在使用 POSIX 时遇到了问题的 strftime 函数,我使用它以 Apple 指定的格式创建日期字段。

use POSIX; 
print 'Epoch is: ' . POSIX::strftime( "%FT%H:%M:%SZ\n", gmtime(978307200) );

在类 unix 平台上,包括 darwin,这个调用会产生正确的日期类型:

2013-09-23T12:34:56Z

在 Windows 上,它产生:

T12:34:56Z

这被报告为 CPAN RT #83460 . Windows 在这里发生了什么?

最佳答案

当我写这个问题并研究一切时,我找到了自己的答案。不过,我不希望所有这些工作都白费。

我使用的%F 格式不可移植,POSIX模块在其 strftime 条目中这样说:

If you want your code to be portable, your format ("fmt")
argument should use only the conversion specifiers defined by
the ANSI C standard (C89, to play safe). These are
"aAbBcdHIjmMpSUwWxXyYZ%".

%F 实际上是 %Y-%m-%d,所以我应该使用它。

我的特殊问题是我知道 POSIX module 告诉您可以使用哪些格式说明符是可移植的,但我仍然必须查看 strftime 手册页以了解它们的作用。在查看手册页时,我忘记检查哪些是可移植的。

关于windows - 为什么 Perl 的 POSIX::strftime %F 说明符在 Windows 上不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18970859/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com