我有一个文本文件,我将其转换为csv文件,其中包含我要导入MySQL数据库的信息。
我目前的日期是这种格式:
Mar 24
我想改变那种格式
YYYY-MM-DD
我想在perl中执行此操作,因为我在perl中的csv文件中完成了所有其他操作。
答案 0 :(得分:2)
这是使用Time::Piece
解决问题的暂时解决方案,这是一个核心模块,不需要安装。
我对您的输入日期格式不包含一年非常不满意。下面的代码假定当前年份,但我可以想象,如果代码在12月31日运行,则Jan 3
之类的日期应升级到下一年。
年份必须包含在要解析的字符串中,因为Time::Piece
会在非闰年时将Feb 29
更改为Mar 1
。
use strict;
use warnings;
use Time::Piece;
print bd_to_ymd('Mar 24');
sub bd_to_ymd {
my ($bd) = @_;
my $year = localtime->year;
my $tp = Time::Piece->strptime("$year $bd", '%Y %b %d');
$tp->strftime('%Y-%m-%d');
}
<强>输出强>
2014-03-24