---
name: "Mojo::Date"
section: "3pm"
platform: "linux"
package: "libmojolicious-perl"
version: "9.39+dfsg-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Mojo::Date"
---

# Mojo::Date(3pm)

HTTP date

## NAME

Mojo::Date - HTTP date

## SYNOPSIS

```
  use Mojo::Date;
  # Parse
  my $date = Mojo::Date->new('Sun, 06 Nov 1994 08:49:37 GMT');
  say $date->epoch;
  # Build
  my $date = Mojo::Date->new(time + 60);
  say "$date";
```

## DESCRIPTION

Mojo::Date implements HTTP date and time functions, based on RFC 7230 \<https://tools.ietf.org/html/rfc7230\>, RFC 7231 \<https://tools.ietf.org/html/rfc7231\> and RFC 3339 \<https://tools.ietf.org/html/rfc3339\>.

## ATTRIBUTES

Mojo::Date implements the following attributes.

### epoch

```
  my $epoch = $date->epoch;
  $date     = $date->epoch(784111777);
```

Epoch seconds, defaults to the current time.

## METHODS

Mojo::Date inherits all methods from Mojo::Base and implements the following new ones.

### new

```
  my $date = Mojo::Date->new;
  my $date = Mojo::Date->new('Sun Nov  6 08:49:37 1994');
```

Construct a new Mojo::Date object and "parse" date if necessary.

### parse

```
  $date = $date->parse('Sun Nov  6 08:49:37 1994');
```

Parse date.

```
  # Epoch
  say Mojo::Date->new('784111777')->epoch;
  say Mojo::Date->new('784111777.21')->epoch;
  # RFC 822/1123
  say Mojo::Date->new('Sun, 06 Nov 1994 08:49:37 GMT')->epoch;
  # RFC 850/1036
  say Mojo::Date->new('Sunday, 06-Nov-94 08:49:37 GMT')->epoch;
  # Ansi C asctime()
  say Mojo::Date->new('Sun Nov  6 08:49:37 1994')->epoch;
  # RFC 3339
  say Mojo::Date->new('1994-11-06T08:49:37Z')->epoch;
  say Mojo::Date->new('1994-11-06T08:49:37')->epoch;
  say Mojo::Date->new('1994-11-06T08:49:37.21Z')->epoch;
  say Mojo::Date->new('1994-11-06T08:49:37+01:00')->epoch;
  say Mojo::Date->new('1994-11-06T08:49:37-01:00')->epoch;
```

### to\_datetime

```
  my $str = $date->to_datetime;
```

Render RFC 3339 \<https://tools.ietf.org/html/rfc3339\> date and time.

```
  # "1994-11-06T08:49:37Z"
  Mojo::Date->new(784111777)->to_datetime;
  # "1994-11-06T08:49:37.21Z"
  Mojo::Date->new(784111777.21)->to_datetime;
```

### to\_string

```
  my $str = $date->to_string;
```

Render date suitable for HTTP messages.

```
  # "Sun, 06 Nov 1994 08:49:37 GMT"
  Mojo::Date->new(784111777)->to_string;
```

## OPERATORS

Mojo::Date overloads the following operators.

### bool

```
  my $bool = !!$date;
```

Always true.

### stringify

```
  my $str = "$date";
```

Alias for "to\_string".

## SEE ALSO

Mojolicious, Mojolicious::Guides, \<https://mojolicious.org\>.
