---
name: "Rose::DateTime::Parser"
section: "3pm"
platform: "linux"
package: "librose-datetime-perl"
version: "0.540-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Rose::DateTime::Parser"
---

# Rose::DateTime::Parser(3pm)

DateTime parser object.

## NAME

Rose::DateTime::Parser - DateTime parser object.

## SYNOPSIS

```
  use Rose::DateTime::Parser;
  $parser = Rose::DateTime::Parser->new(time_zone => 'UTC');
  $dt = $parser->parse_date('4/30/2001 8am')
    or warn $parser->error;
```

## DESCRIPTION

Rose::DateTime::Parser encapsulates a particular kind of call to Rose::DateTime::Util's parse\_date and parse\_european\_date functions.  The object maintains the desired time zone, which is then passed to each call.

This class inherits from, and follows the conventions of, Rose::Object. See the Rose::Object documentation for more information.

## CONSTRUCTOR

- **new PARAMS**

  Constructs a new Rose::DateTime::Parser object based on PARAMS, where PARAMS are name/value pairs.  Any object method is a valid parameter name.

## OBJECT METHODS

- **error \[ERROR\]**

  Get or set the error message string.

- **european \[BOOL\]**

  Get or set a boolean value that controls how the parse\_date method will interpret "xx/xx/xxxx" dates: either month/day/year or year/month/day.

  If true, then the parse\_date method will pass its arguments to Rose::DateTime::Util's parse\_european\_date function, which interprets such dates as "dd/mm/yyyy".

  If false, then the parse\_date method will temporarily **force** non-European date parsing and then call Rose::DateTime::Util's parse\_date function, which will interpret the date as "mm/dd/yyyy".

  This attribute defaults to the value returned by the Rose::DateTime::Util-\>european\_dates class method called *at the time the Rose::DateTime::Parser object is constructed*.

  If the BOOL argument is undefined (instead of "false, but defined") then the attribute will return to its default value by calling the Rose::DateTime::Util-\>european\_dates class method again.  To unambiguously set the attribute to true or false, pass a defined value like 1 or 0.

- **parse\_date STRING**

  Attempt to parse STRING by passing it to Rose::DateTime::Util's parse\_date or parse\_european\_date function.  The choice is controlled by the european attribute.

  If parsing is successful, the resulting DateTime object is returned.  Otherwise, error is set and false is returned.

- **parse\_datetime STRING**

  This method is an alias for **parse\_date()**

- **parse\_european\_date STRING**

  Attempt to parse STRING by passing it to Rose::DateTime::Util's parse\_european\_date function (regardless of the value of the  european attribute). If parsing is successful, the resulting DateTime object is returned.  Otherwise, error is set and false is returned.

- **time\_zone \[STRING\]**

  Get or set the time zone string passed to Rose::DateTime::Util's parse\_date function.  Defaults to the value returned by the Rose::DateTime::Util-\>time\_zone class method.

## AUTHOR

John C. Siracusa (siracusa@gmail.com)

## LICENSE

Copyright (c) 2010 by John C. Siracusa.  All rights reserved.  This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
