Rob*_*ble 23
Date :: Manip就是这样做的.
这是一个示例程序:
#!/usr/bin/perl
use strict;
use Date::Manip;
while (<DATA>)
{
chomp;
print UnixDate($_, "%Y-%m-%d %H:%M:%S"), " ($_)\n";
}
__DATA__
today
yesterday
tomorrow
last Tuesday
next Tuesday
1 hour ago
next week
Run Code Online (Sandbox Code Playgroud)
这导致以下输出:
2008-11-17 15:21:04 (today)
2008-11-16 15:21:04 (yesterday)
2008-11-18 15:21:04 (tomorrow)
2008-11-11 00:00:00 (last Tuesday)
2008-11-18 00:00:00 (next Tuesday)
2008-11-17 14:21:04 (1 hour ago)
2008-11-24 00:00:00 (next week)
Run Code Online (Sandbox Code Playgroud)
UnixDate是由其提供的函数之一Date::Manip,第一个参数是模块支持的任何格式的日期/时间,第二个参数描述如何格式化日期/时间.还有其他函数可以解析这些"人类"日期,而不对其进行格式化,以用于增量计算等.
你也可能会发现看看这个DateTime::Format家庭很有意思,特别是DateTime :: Format :: Natural.一旦将日期/时间解析为DateTime对象,就可以通过一系列不同的方式对其进行操作和评估.
这是一个示例程序:
use strict;
use warnings;
use DateTime::Format::Natural;
my( $parser ) = DateTime::Format::Natural->new;
while ( <> ) {
chomp;
my( $dt ) = $parser->parse_datetime( $_ );
if ( $parser->success ) {
print join( ' ', $dt->ymd, $dt->hms ) . "\n";
}
else {
print $parser->error . "\n";
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
tomorrow
2008-11-18 21:48:49
next Tuesday
2008-11-25 21:48:53
1 week from now
2008-11-24 21:48:57
1 hour ago
2008-11-17 20:48:59
Run Code Online (Sandbox Code Playgroud)
TMTOWTDI :)
史蒂夫
| 归档时间: |
|
| 查看次数: |
5209 次 |
| 最近记录: |