Crate time

source ·
Expand description

Feature flags

This crate exposes a number of features. These can be enabled or disabled as shown in Cargo’s documentation. Features are disabled by default unless otherwise noted.

Reliance on a given feature is always indicated alongside the item definition.

  • std (enabled by default, implicitly enables alloc)

    This enables a number of features that depend on the standard library.

  • alloc (enabled by default via std)

    Enables a number of features that require the ability to dynamically allocate memory.

  • macros

    Enables macros that provide compile-time verification of values and intuitive syntax.

  • formatting (implicitly enables std)

    Enables formatting of most structs.

  • parsing

    Enables parsing of most structs.

  • local-offset (implicitly enables std)

    This feature enables a number of methods that allow obtaining the system’s UTC offset.

  • large-dates

    By default, only years within the ±9999 range (inclusive) are supported. If you need support for years outside this range, consider enabling this feature; the supported range will be increased to ±999,999.

    Note that enabling this feature has some costs, as it means forgoing some optimizations. Ambiguities may be introduced when parsing that would not otherwise exist.

  • serde

    Enables serde support for all types except Instant.

  • serde-human-readable (implicitly enables serde, formatting, and parsing)

    Allows serde representations to use a human-readable format. This is determined by the serializer, not the user. If this feature is not enabled or if the serializer requests a non-human-readable format, a format optimized for binary representation will be used.

    Libraries should never enable this feature, as the decision of what format to use should be up to the user.

  • serde-well-known (implicitly enables serde-human-readable)

    This feature flag is deprecated and will be removed in a future breaking release. Use the serde-human-readable feature instead.

    Enables support for serializing and deserializing well-known formats using serde’s #[with] attribute.

  • rand

    Enables rand support for all types.

  • quickcheck (implicitly enables alloc)

    Enables quickcheck support for all types except Instant.

  • wasm-bindgen

    Enables wasm-bindgen support for converting JavaScript dates, as well as obtaining the UTC offset from JavaScript.

One feature only available to end users is the unsound_local_offset cfg. This enables obtaining the system's UTC offset even when it is unsound. To enable this, use the RUSTFLAGS environment variable. This is untested and officially unsupported. Do not use this unless you understand the risk.


pub use crate::error::Error;


Various error types returned by methods in the time crate.
Extension traits.
format_descriptionformatting or parsing
Description of how types should be formatted and parsed.
Formatting for various types.
Macros to construct statically known values.
Parsing for various types.
Differential formats for serde.
Utility functions.


Date in the proleptic Gregorian calendar.
A span of time with nanosecond precision.
A measurement of a monotonically non-decreasing clock. Opaque and useful only with Duration.
Combined date and time.
The clock time within a given date. Nanosecond precision.
An offset from UTC.


Months of the year.
Days of the week.

Type Definitions

An alias for std::result::Result with a generic error from the time crate.