我试图在perl中将字符串转换为日期,但是会出错.
use strict;
use warnings;
use DateTime;
use Date::Manip;
my $date = ParseDate("20111121");
print "today is ".$date->day_of_week."\n";
Run Code Online (Sandbox Code Playgroud)
错误
Can't call method "day_of_week" without a package or object reference
Run Code Online (Sandbox Code Playgroud)
看起来包导入有问题...
谢谢
ike*_*ami 25
DateTime本身没有解析工具,但有许多解析器可以生成DateTime对象.大多数情况下,您可能需要DateTime :: Format :: Strptime.
use DateTime::Format::Strptime qw( );
my $format = DateTime::Format::Strptime->new(
pattern => '%Y%m%d',
time_zone => 'local',
on_error => 'croak',
);
my $dt = $format->parse_datetime('20111121');
Run Code Online (Sandbox Code Playgroud)
或者你可以自己做.
use DateTime qw( );
my ($y,$m,$d) = '20111121' =~ /^([0-9]{4})([0-9]{2})([0-9]{2})\z/
or die;
my $dt = DateTime->new(
year => $y,
month => $m,
day => $d,
time_zone => 'local',
);
Run Code Online (Sandbox Code Playgroud)
JRF*_*son 24
DateTime不解析日期.我会选择Time :: Piece核心模块给你strptime():
#!/usr/bin/env perl
use strict;
use warnings;
use Time::Piece;
my $t = Time::Piece->strptime("20111121", "%Y%m%d");
print $t->strftime("%w\n");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
52332 次 |
| 最近记录: |