---
name: "Test::Reporter::Date::Format"
section: "3pm"
platform: "linux"
package: "libtest-reporter-perl"
version: "1.27-3.1"
release: "Debian 5.0 (Lenny)"
platforms: ["linux"]
url: "https://new.carta.tech/Test::Reporter::Date::Format"
---

# Test::Reporter::Date::Format(3pm)

Date formating subroutines

## NAME

Test::Reporter::Date::Format - Date formating subroutines

## SYNOPSIS

```
        use Test::Reporter::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

Test::Reporter::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

```
        Test::Reporter::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
        %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.
