Module chrono::format

source ·
Expand description

Formatting (and parsing) utilities for date and time.

This module provides the common types and routines to implement, for example, DateTime::format or DateTime::parse_from_str methods. For most cases you should use these high-level interfaces.

Internally the formatting and parsing shares the same abstract formatting items, which are just an Iterator of the Item type. They are generated from more readable format strings; currently Chrono supports a built-in syntax closely resembling C’s strftime format. The available options can be found here.


use chrono::prelude::*;

let date_time = Utc.with_ymd_and_hms(2020, 11, 10, 0, 1, 32).unwrap();

let formatted = format!("{}", date_time.format("%Y-%m-%d %H:%M:%S"));
assert_eq!(formatted, "2020-11-10 00:01:32");

let parsed = Utc.datetime_from_str(&formatted, "%Y-%m-%d %H:%M:%S")?;
assert_eq!(parsed, date_time);


pub use strftime::StrftimeItems;


strftime/strptime-inspired date and time formatting syntax.


DelayedFormatalloc or std
A temporary object which can be used as an argument to format! or others. This is normally constructed via format methods of each date and time type.
An opaque type representing fixed-format item types for internal uses only.
An opaque type representing numeric item types for internal uses only.
An error from the parse function.
Parsed parts of date and time. There are two classes of methods:


Fixed-format item types.
A single formatting item. This is used for both formatting and parsing.
Numeric item types. They have associated formatting width (FW) and parsing width (PW).
Padding characters for numeric items.
The category of parse error


formatalloc or std
Tries to format given arguments with given formatting items. Internally used by DelayedFormat.
format_itemalloc or std
Formats single formatting item
Tries to parse given string into parsed with given formatting items. Returns Ok when the entire string has been parsed (otherwise parsed should not be used). There should be no trailing string after parsing; use a stray Item::Space to trim whitespaces.

Type Definitions

Same as Result<T, ParseError>.