我从格式为YEAR-MM-DD
的数据库中提取字符串,即2013-2-24,需要将其打印在Month, DD, YEAR
格式的网页上,即2月24日,2013
我必须使用perl来执行此操作,但我对该语言不熟悉。 到目前为止,我已经想过我需要将月份数转换为字符串,如下所示:
my @months = ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
并从数据库中提取数据:
{Table}->get('date')
但我不确定如何把这些放在一起,任何帮助都会受到赞赏。
我已经接受了这个:但它似乎没有用。
use Date::Format;
@date = {Table}->get('date')
$date->time2str("%B %d %Y", @date);
print date;
可能因为数据库中的格式而失败了? yyyy-mm-dd,破灭会导致它失败吗?我需要先将它转换成数字吗?
答案 0 :(得分:2)
使用Time::Piece
:
use strict;
use warnings;
use Time::Piece;
my $date = '2013-2-24';
print Time::Piece->strptime($date, '%Y-%m-%d')->strftime("%B %d, %Y"), "\n";
输出:
February 24, 2013
答案 1 :(得分:1)
如果您可以使用CPAN中的DateTime::Format::MySQL
模块,那么您的生活将变得更加轻松,因为它可以根据您的要求进行定制。
use DateTime::Format::MySQL;
my $date_from_database_table = '2013-2-24';
my $dt = DateTime::Format::MySQL->parse_datetime($date_from_database_table);
print join(',', $dt->month_name(), $dt->day, $dt->year) ."\n";
由于您是Perl的新用户,因此您应该查看Task::Kensho模块列表。它将告诉您Perl社区建议解决某个问题的模块。您会发现Date::Format
已经失宠而支持DateTime
模块,并且在DateTime
中您会发现它并没有解析日期本身但确实有一大堆模块可以在DateTime::Format
名称空间下格式化日期。