首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将字符串转换为DateTime::Format::Strptime

将字符串转换为DateTime::Format::Strptime
EN

Stack Overflow用户
提问于 2012-08-24 08:05:45
回答 1查看 6.3K关注 0票数 2

这个答案中,我使用DateTime::Format::Strptime从字符串中获取日期。

我使用以下模式:%m%d%Y%n%T。这个应该是匹配

  • %m:月份数(01-12).这也将解析单数数字。
  • %d:月中的一天(01-31).这也将解析单数数字。
  • %Y:年份,包括世纪(例如,1991年)。
  • %n:任意空格。
  • %T:等效于%H:%M:%S
    • %H:时间(00-23).这也将解析单数数字。
    • %M:分钟(00-59).这也将解析单数数字。
    • %S:第二个(0-60;60 )可能发生在闰秒.见DateTime::LeapSecond)。

但是,对于输入:05/18/2011 14:14:05,它失败了,错误:

您的日期时间与您的模式不匹配。

据我所见,我的模式与输入模式相匹配。我哪里出问题了?

有关守则如下:

代码语言:javascript
复制
use DateTime::Format::Strptime qw( );

my $format = DateTime::Format::Strptime->new(
   pattern   => '%m%d%Y%n%T',
   time_zone => 'local',
   on_error  => 'croak',
);

my $dt = $fields->[1] ;
print "Date:[$dt]\n";
my $dateopen = $format->parse_datetime($dt);

输出:

日期:05/18/2011 14:14:05 您的日期时间与您的模式不匹配。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-24 08:14:16

非模式字符也很重要。您的日期组件之间有斜杠,因此模式'%m/%d/%Y%n%T'可以工作,而您的模式不能工作。

注意,模式%D也不能工作,因为它是%m%d%Y的快捷方式,也不包括斜杠。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12105406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档