---
name: "Template::Plugin::DateTime::Format"
section: "3pm"
platform: "linux"
package: "libtemplate-plugin-datetime-format-perl"
version: "0.03-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Template::Plugin::DateTime::Format"
---

# Template::Plugin::DateTime::Format(3pm)

format DateTime objects from inside TT with DateTime::Format-style formatters

## NAME

Template::Plugin::DateTime::Format - format DateTime objects from inside TT with DateTime::Format-style formatters

## SYNOPSIS

```
   [% USE f = DateTime::Format('DateTime::Format::Strptime', { pattern => "%T" }) %]
   [% f.format(datetime_object) %]
```

## DESCRIPTION

Oftentimes, you have a DateTime object that you want to render in your template.  However, the default rendering (2008-01-01T01:23:45) is pretty ugly.  Formatting the DateTime with a DateTime::Format object is the usual solution, but there's usually not a nice place to put the formatting code.

This plugin solves that problem.  You can create a formatter object from within TT and then use that object to format DateTime objects.

### CREATING AN OBJECT

Creating a formatter instance is done in the usual TT way:

```
  [% USE varname = DateTime::Format( ... args ... ) %]
```

This creates a new formatter and calls it `"varname"`.

The constructor takes up to three arguments.  The first argument is the name of the formatter class.  It is required, and the named class must follow the DateTime::Format API.  An exception will be thrown if the class cannot be loaded.

The second argument is a reference to pass to the formatter's constructor.  If it is an array reference, the array will be dereferenced before being passed to `"new"` as `@_`. Otherwise, the single reference is passed to the constructor.

The third argument is optional and is the rest of `@_` to pass to `"format_datetime"` after the DateTime object.  I don't know if this is actually allowed by the API, but I figured it might come in handy.

### FORMATTING DATES

Once you've created the object, invoke the `"format"` method with the DateTime object you'd like to format.  The result of `"format_datetime"` is returned.

## METHODS

### new

Called by TT to create a new formatter.

### format($datetime)

Formats `$datetime`.

## REPOSITORY

\<https://github.com/neilbowers/Template-Plugin-DateTime-Format\>

## AUTHOR

Jonathan Rockway `"<jrockway@cpan.org>"`

## COPYRIGHT AND LICENSE

Copyright (c) 2008 Jonathan Rockway.

This module is free software.  You may redistribute it under the same terms as perl itself.
