输入到excel文件中的数据以XML文件的形式存储在我的一个工具中。
在XML文件存储过程中,日期值以数字格式存储。
例如:11-May-2014 ==> 41770。我不知道它是如何以数字格式存储日期值的
现在,我试图检索使用"DateTime::Format::Excel"模块存储在XML文件中的日期值。代码片段附在下面,
谁能告诉我,如何更改打印日期值的语言(英语,法语,德语等)?但是,我需要的格式应该是"dd -缩写月份名称- yyyy"
Perl代码片段1:
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"));
您可以使用DateTime和DateTime::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 => %sn", $dt->locale->language, $dt->strftime("%d-%b-%Y");
}
输出:English => 11-May-2014
French => 11-mai-2014
German => 11-Mai-2014