1

たとえば、その日付を変換したい:

02082012

In that case:
02 - Day
08 - Month
2012 - Year

今のところ、日付を分離していますが、月に変換することはできません:

#echo "02082012"|gawk -F "" '{print $1$2 "-" $3$4 "-" $5$6$7$8}'
#02-08-2012

変換後、すべての月をキャッチするために期待されるビュー:

02-Aug-2012
4

6 に答える 6

2

Time::Pieceは Perl のコア モジュールであり、このような単純な操作に最適です。

#!/usr/bin/perl

use strict;
use warnings;
use 5.010;
use Time::Piece;

my $string = '02082012';

my $date = Time::Piece->strptime($string, '%d%m%Y');

say $date->strftime('%d-%b-%Y');

(はい、これは user1811486 の回答と非常によく似ていますが、元の質問で要求された正しい形式を使用しています。)

于 2013-07-04T15:45:12.997 に答える
1

固定フィールド長の文字列を分割するには、次を使用しますunpack

my $input = "02082012";
my ( $day, $month, $year ) = unpack( 'a2 a2 a4', $input );
print "$input becomes $day, $month, $year\n";

http://perldoc.perl.org/functions/unpack.htmlを参照してください

次に、他の回答で述べたようにPOSIX::strftime()、日付を再フォーマットするために使用します。

于 2013-07-04T13:47:26.213 に答える