DateTime->strftime

strftimeやstrptimeはつかいませんか。$time->strftime(’at %l:%m%P(%B %d)’);

Lingrの日付を変換に対してコメントをもらいました。これを忘れていた。

# print new time
print 'at ' .
      $time->hour_12 .
      ':' .
      $time->minute .
      ($time->hour_1 < 12 ? 'am' : 'pm') .
      ' (' .
      $rev_month{$time->month}.
      ' ' .
      $time->day.
      ')';

# print new time
print $time->strftime('at %l:%m%P(%B %d)');

になって、非常にスッキリ。文字列のパースのほうもDateTime::Format::Strptimeで試してみるものの、文字列に「年」が含まれてないとパースできない?