【问题标题】:Change Date Format with Perl使用 Perl 更改日期格式
【发布时间】:2014-05-07 07:13:21
【问题描述】:

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

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

Mar 24

我想更改格式

YYYY-MM-DD

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

【问题讨论】:

  • 如果不给一年,你会只使用今年吗?您是否尝试过任何可以发布的代码?

标签: mysql perl date csv format


【解决方案1】:

这是使用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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-04
    • 2016-04-16
    • 2018-03-11
    • 2015-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多