如何更改从XML文件中检索的Date值的语言,该文件使用Perl中的DateTime :: Format :: Excel模块以数字格式存储

时间:2014-05-05 09:26:26

标签: xml excel perl date datetime

已输入excel文件的数据将作为XML文件存储在我的一个工具中 在XML文件存储过程中,日期值以数字格式存储 例如: 2014年5月11日==> 41770 即可。我不知道如何以数字格式存储日期值。

现在,我正在尝试使用“ DateTime :: Format :: Excel ”模块检索存储在XML文件中的日期值。代码段附在下面,

有人可以告诉我,如何更改打印日期值的语言(英语,法语,德语等)。 但是,我需要的格式应该是“DD-Abbreviated Month Name -YYYY”

我在Perl中使用的代码片段:

use DateTime::Format::Excel;
use Date::Simple qw(d8);
use XML::Simple;
use String::Util("trim");

$RequiredValue = "%XML_FILE_ABSOLUTE_PATH%";
$XmlHandle = XMLin($RequiredValue, SuppressEmpty => 1);
$temp = trim($XmlHandle -> {Date});
$DateVal = DateTime::Format::Excel -> parse_datetime($temp) -> ymd();
$DateVal =~ s/-//g;

print (d8($DateVal)->format("%d-%b-%Y"));

1 个答案:

答案 0 :(得分:0)

您可以使用DateTimeDateTime::Locale来定位格式。

#!/usr/bin/perl
use strict;
use warnings;

use DateTime;
use DateTime::Format::Excel;

my $serial  = 41770;
my @locales = qw(en fr de);

my $dt = DateTime::Format::Excel->parse_datetime($serial);
foreach my $locale (@locales) {
    $dt->set_locale($locale);
    printf "%s => %s\n", $dt->locale->language, $dt->strftime("%d-%b-%Y");
}

输出:

English => 11-May-2014
French => 11-mai-2014
German => 11-Mai-2014