我已經開始學習perl,並且遇到了一些問題。那裏可能有不同格式的日期可以作爲輸入。我必須按照時間順序對這些日期進行排序。
我計劃將單日期格式中的每個日期進行轉換,並將其作爲日期以常見格式(作爲關鍵字)和日期原始給定格式(作爲值)存儲在散列表中。現在運行排序的散列和輸出中的原始格式(散列值)打印日期。如何識別perl中給定日期的格式
但是怎麼做呢?我找到了一種將日期轉換爲另一種格式的格式,如下所示。
use Time::Piece;
my $dt = Time::Piece->strptime('Sep 12 00:00:00 2012', '%b %e %T %Y');
print $dt->strftime('%d-%m-%Y');
但在這種情況下,我必須知道輸入日期的格式是什麼。在執行時我不知道,因爲它取決於用戶。那麼是否有任何方法可以比較並決定哪種格式是這個日期?
#This is my input file
#only four formats will be there in input dates. (MM/DD/YY,
#DD-MM-YYYY, MMM-DD-YY or DD-MMM-YYYY)
10/01/92
18-07-1984
Oct-20-17
04-Jan-2004
#This is what I want in output
18-07-1984
10/01/92
04-Jan-2004
Oct-20-17
使用正則表達式來區分4種類型的輸入。 – toolic