Osobiście zawsze używany Time::ParseDate do tego. Rozumie praktycznie każdy wypróbowany format.
Bezwzględne formaty daty
Dow, dd Mon yy
Dow, dd Mon yyyy
Dow, dd Mon
dd Mon yy
dd Mon yyyy
Month day{st,nd,rd,th}, year
Month day{st,nd,rd,th}
Mon dd yyyy
yyyy/mm/dd
yyyy-mm-dd (usually the best date specification syntax)
yyyy/mm
mm/dd/yy
mm/dd/yyyy
mm/yy
yy/mm (only if year > 12, or > 31 if UK)
yy/mm/dd (only if year > 12 and day < 32, or year > 31 if UK)
dd/mm/yy (only if UK, or an invalid mm/dd/yy or yy/mm/dd)
dd/mm/yyyy (only if UK, or an invalid mm/dd/yyyy)
dd/mm (only if UK, or an invalid mm/dd)
Względne formaty daty:
count "days"
count "weeks"
count "months"
count "years"
Dow "after next"
Dow "before last"
Dow (requires PREFER_PAST or PREFER_FUTURE)
"next" Dow
"tomorrow"
"today"
"yesterday"
"last" dow
"last week"
"now"
"now" "+" count units
"now" "-" count units
"+" count units
"-" count units
count units "ago"
Bezwzględne formaty czasu:
hh:mm:ss[.ddd]
hh:mm
hh:mm[AP]M
hh[AP]M
hhmmss[[AP]M]
"noon"
"midnight"
Względne formaty czasu:
count "minutes" (count can be franctional "1.5" or "1 1/2")
count "seconds"
count "hours"
"+" count units
"+" count
"-" count units
"-" count
count units "ago"
formaty Strefa czasowa:
[+-]dddd
GMT[+-]d+
[+-]dddd (TZN)
TZN
Specjalne formaty:
[ d]d/Mon/yyyy:hh:mm:ss [[+-]dddd]
yy/mm/dd.hh:mm
Ach, stare dobre Date :: Manip ... Jak można nie kochać moduł, który próbuje więc trudno mówić cię z użyciem to? –
Dokładnie tego, czego szukałem, ale (jak zwykle) nie wiedziałem, jak sformułować pytanie. Dzięki. – andymurd
Myślę, że DateTime jest tym, co społeczność teraz najbardziej naciska jako kompleksowe rozwiązanie Date & Time. Sprawdź datetime.perl.org i ten artykuł http://www.perl.com/pub/a/2003/03/13/datetime.html – draegtun