Date::Format - Date formating subroutines

- NAME
- SYNOPSIS
- DESCRIPTION
- MULTI-LANGUAGE SUPPORT
- CONVERSION SPECIFICATION
- AUTHOR
- COPYRIGHT

# NAME

Date::Format - Date formating subroutines

# SYNOPSIS

            use Date::Format;

            @lt = localtime(time);

            print time2str($template, time);
            print strftime($template, @lt);

            print time2str($template, time, $zone);
            print strftime($template, @lt, $zone);

            print ctime(time);
            print asctime(@lt);

            print ctime(time, $zone);
            print asctime(@lt, $zone);

# DESCRIPTION

This module provides routines to format dates into ASCII strings. They correspond to the C library routines `strftime` and `ctime`.

time2str(TEMPLATE, TIME [, ZONE])
  `time2str` converts `TIME` into an ASCII string using the conversion specification given in `TEMPLATE`. `ZONE` if given specifies the zone which the output is required to be in, `ZONE` defaults to your current zone.

strftime(TEMPLATE, TIME [, ZONE])
  `strftime` is similar to `time2str` with the exception that the time is passed as an array, such as the array returned by `localtime`.

ctime(TIME [, ZONE])
  `ctime` calls `time2str` with the given arguments using the conversion specification `"%a %b %e %T %Y\n"`

asctime(TIME [, ZONE])
  `asctime` calls `time2str` with the given arguments using the conversion specification `"%a %b %e %T %Y\n"`

# MULTI-LANGUAGE SUPPORT

Date::Format is capable of formating into several languages, these are English, French, German and Italian. Changing the language is done via a static method call, for example

            Date::Format->language('German');

will change the language in which all subsequent dates are formatted.

This is only a first pass, I am considering changing this to be

            $lang = Date::Language->new('German');
            $lang->time2str("%a %b %e %T %Y\n", time);

I am open to suggestions on this.

# CONVERSION SPECIFICATION

Each conversion specification is replaced by appropriate characters as described in the following list. The appropriate characters are determined by the LC_TIME category of the program's locale.

            %%      PERCENT
            %a      day of the week abbr
            %A      day of the week
            %b      month abbr
            %B      month
            %c      MM/DD/YY HH:MM:SS
            %C      ctime format: Sat Nov 19 21:05:57 1994
            %d      numeric day of the month, with leading zeros (eg 01..31)
            %e      numeric day of the month, without leading zeros (eg 1..31)
            %D      MM/DD/YY
            %G      GPS week number (weeks since January 6, 1980)
            %h      month abbr
            %H      hour, 24 hour clock, leading 0's)
            %I      hour, 12 hour clock, leading 0's)
            %j      day of the year
            %k      hour
            %l      hour, 12 hour clock
            %L      month number, starting with 1
            %m      month number, starting with 01
            %M      minute, leading 0's
            %n      NEWLINE
            %o      ornate day of month -- "1st", "2nd", "25th", etc.
            %p      AM or PM
            %P      am or pm (Yes %p and %P are backwards :)
            %q      Quarter number, starting with 1
            %r      time format: 09:05:57 PM
            %R      time format: 21:05
            %s      seconds since the Epoch, UCT
            %S      seconds, leading 0's
            %t      TAB
            %T      time format: 21:05:57
            %U      week number, Sunday as first day of week
            %w      day of the week, numerically, Sunday == 0
            %W      week number, Monday as first day of week
            %x      date format: 11/19/94
            %X      time format: 21:05:57
            %y      year (2 digits)
            %Y      year (4 digits)
            %Z      timezone in ascii. eg: PST
            %z      timezone in format -/+0000

`%d`, `%e`, `%H`, `%I`, `%j`, `%k`, `%l`, `%m`, `%M`, `%q`, `%y` and `%Y` can be output in Roman numerals by prefixing the letter with `O`, e.g. `%OY` will output the year as roman numerals.

# AUTHOR

Graham Barr <gbarr@pobox.com>

# COPYRIGHT

Copyright (c) 1995-1999 Graham Barr. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

Date::Format - Date formating subroutines