如何更改 Perl 中日期/时间字符串的格式? (具体问题)

发布于 2024-11-04 10:04:16 字数 175 浏览 1 评论 0原文

我有一个从日志文件中解析的示例字符串,格式如下:

“Mon Apr 25 17:47:19 2011”

,我希望它看起来像

“Mon Apr 25 05:47PM 2011”

一般我会如何执行此操作? (即当然它不会每次都是相同的字符串)。

非常感谢。

I have an example string parsed from a log file in the following format:

"Mon Apr 25 17:47:19 2011"

and I want it to look like

"Mon Apr 25 05:47PM 2011"

How would I do this in general? (i.e. it's not going to be the same string every time of course).

Thanks so much.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

素手挽清风 2024-11-11 10:04:16

如有疑问,通常最好选择 DateTime。在这种情况下,您可以:

use DateTime;
use DateTime::Format::Strptime;

my $parser = DateTime::Format::Strptime->new(
    pattern => '%a %b %d %H:%M:%S %Y'
);

my $dt = $parser->parse_datetime('Mon Apr 25 17:47:19 2011');
print $dt->strftime('%a %b %d %I:%M%p %Y'), "\n";

如果您需要有关模式的信息,请参阅strftime 文档< /a> 或DateTime 手册中的类似部分。

您还可以使用 POSIX 中的 strftime 函数和 < POSIX::strptime 中的 code>strptime 函数,但是接口不太令人愉快。

When in doubt, it's usually a good bet to go with DateTime. In this case you could:

use DateTime;
use DateTime::Format::Strptime;

my $parser = DateTime::Format::Strptime->new(
    pattern => '%a %b %d %H:%M:%S %Y'
);

my $dt = $parser->parse_datetime('Mon Apr 25 17:47:19 2011');
print $dt->strftime('%a %b %d %I:%M%p %Y'), "\n";

If you need information on the patterns, see the strftime docs or the similar section in the DateTime Manual.

You could also work this using the strftime function in POSIX and the strptime function in POSIX::strptime, but the interfaces are less enjoyable.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文