使用Perl更改日期格式

时间:2014-03-28 01:16:40

标签: mysql perl date csv format

我有一个文本文件,我将其转换为csv文件,其中包含我要导入MySQL数据库的信息。

我目前的日期是这种格式:

Mar 24

我想改变那种格式

YYYY-MM-DD

我想在perl中执行此操作,因为我在perl中的csv文件中完成了所有其他操作。

1 个答案:

答案 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