Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 如何显示4/25/10到2010-25-04?_Perl_Split_Printf - Fatal编程技术网

Perl 如何显示4/25/10到2010-25-04?

Perl 如何显示4/25/10到2010-25-04?,perl,split,printf,Perl,Split,Printf,输出: 但是我想要像2010-25-04这样的输出。谁能建议我如何显示我的欲望输出。给我你的建议 你的答案将是可观的。好吧,一个不切实际的解决方案可能是: 4 25 10 你可以写一些更加自我记录的东西,突出你期望的年、月、日,如下所示: my @date = split( /\//,$str) printf("%04d-%02d-%02d", $date[2] + 2000, $date[1], $date[0]); 好吧,一个不切实际的解决方案可能是: 4 25 10 你可以写一些更加

输出:

但是我想要像2010-25-04这样的输出。谁能建议我如何显示我的欲望输出。给我你的建议
你的答案将是可观的。

好吧,一个不切实际的解决方案可能是:

4 25 10
你可以写一些更加自我记录的东西,突出你期望的年、月、日,如下所示:

my @date = split( /\//,$str)
printf("%04d-%02d-%02d", $date[2] + 2000, $date[1], $date[0]);

好吧,一个不切实际的解决方案可能是:

4 25 10
你可以写一些更加自我记录的东西,突出你期望的年、月、日,如下所示:

my @date = split( /\//,$str)
printf("%04d-%02d-%02d", $date[2] + 2000, $date[1], $date[0]);

你离得不远

您可以保留单个变量以更好地处理数据,而不是在单个操作中拆分和联接:

my ($day, $month, $year) = split /\//, $str;
printf("%04d-%02d-%02d", $year + 2000, $month, $day);
然后,您可以按照自己喜欢的任何方式对其进行格式化,例如:

my ($d,$m,$y) = split /\//, $str;
不过,有几点需要注意:

我不会对源代码格式发表评论,但是您正在转换的格式没有多大意义。使用ISO-8601:2010-04-25可能会更好。 显然,这种方法只适用于2099年。 对于任何更严重的问题,最好将此类工作委托给最新的处理模块。参见示例和
你离得不远

您可以保留单个变量以更好地处理数据,而不是在单个操作中拆分和联接:

my ($day, $month, $year) = split /\//, $str;
printf("%04d-%02d-%02d", $year + 2000, $month, $day);
然后,您可以按照自己喜欢的任何方式对其进行格式化,例如:

my ($d,$m,$y) = split /\//, $str;
不过,有几点需要注意:

我不会对源代码格式发表评论,但是您正在转换的格式没有多大意义。使用ISO-8601:2010-04-25可能会更好。 显然,这种方法只适用于2099年。 对于任何更严重的问题,最好将此类工作委托给最新的处理模块。参见示例和 给出:

给出:


不需要为此做任何更改。多年来一直包含在Perl核心发行版中

2010-25-04

不需要为此做任何更改。多年来一直包含在Perl核心发行版中

2010-25-04


这将是一个很好的时间来接受答案,点击旁边的小复选标记,然后-在您的答案中,为什么使用02?请告诉meA前导零导致零填充打印4作为04。单击旁边的小复选标记,这将是接受答案的好时机,然后-在你的回答中为什么使用02?请告诉meA前导零导致零填充打印4作为04。感谢你给出答案,但是@JB answer与你的答案相比有点容易。感谢你给出答案,但是@JB answer与你的答案相比有点容易。什么是使用DateTime::Format::Strptime;我不在乎这个,因为我还是初学者。你能解释一下它的用途吗?你提供输入/输出格式,它理解日期,进行转换。在需要处理各种输入/输出格式的情况下,这可能很有用,或者切换时区等。当我使用您的代码时,它会显示错误,比如在@INC@INC中找不到dateTime/formattes/strpcime.pm包含:./usr/local/lib64/perl5/usr/local/share/perl5/usr/lib64/perl5/vendor\u perl/usr/lib64/perl5/usr/share/perl5..CPAN是perl模块的存储库。一般来说,有些模块已经实现了您想要的功能,因此您可以安装并使用它。这个问题就是一个例子,您想要做的事情已经实现并经过测试,因此您可以使用它,而不是自己编写它;我不在乎这个,因为我还是初学者。你能解释一下它的用途吗?你提供输入/输出格式,它理解日期,进行转换。在需要处理各种输入/输出格式的情况下,这可能很有用,或者切换时区等。当我使用您的代码时,它会显示错误,比如在@INC@INC中找不到dateTime/formattes/strpcime.pm包含:./usr/local/lib64/perl5/usr/local/share/perl5/usr/lib64/perl5/vendor\u perl/usr/lib64/perl5/usr/share/perl5..CPAN是perl模块的存储库。一般来说,有些模块已经实现了您想要的功能,所以您需要安装一个模块并使用它。这个问题就是一个例子,您想要做的事情已经实现并测试过了,所以您可以使用它,而不是自己编写。cpan的用途是什么?它在编写程序时的帮助方式span是代码库的存储库。额外的免费代码使编写Perl程序更容易。它很有帮助,因为它提供了您不需要编写的代码。但是您不需要了解我的解决方案中的CPAN,因为我使用的库Time::Piece已经作为本地Perl副本的一部分安装。您能告诉我如何安装此CPAN模块吗?其中许多模块都是为您的系统预构建的,因此您可以使用yum for RedHat/Fedora/Centos系统安装它们,适用于Debian/Ubuntu系统或适用于Windows的ppm。或者,还有。cpan的用途是什么?它在编写程序时的帮助方式span是代码库的存储库。额外的免费代码使编写Perl程序更容易。我
它没有帮助,因为它提供了您不需要编写的代码。但是您不需要了解我的解决方案中的CPAN,因为我使用的库Time::Piece已经作为本地Perl副本的一部分安装。您能告诉我如何安装此CPAN模块吗?其中许多模块都是为您的系统预构建的,因此您可以使用yum for RedHat/Fedora/Centos系统安装它们,适用于Debian/Ubuntu系统或适用于Windows的ppm。另外,还有一个问题。