# Trait chrono::offset::TimeZone [−] [src]

    pub trait TimeZone: Sized + Clone {
        type Offset: Offset;
        fn from_offset(offset: &Self::Offset) -> Self;
        fn offset_from_local_date(
            &self,
            local: &NaiveDate
        ) -> LocalResult<Self::Offset>;
        fn offset_from_local_datetime(
            &self,
            local: &NaiveDateTime
        ) -> LocalResult<Self::Offset>;
        fn offset_from_utc_date(&self, utc: &NaiveDate) -> Self::Offset;
        fn offset_from_utc_datetime(&self, utc: &NaiveDateTime) -> Self::Offset;

        fn ymd(&self, year: i32, month: u32, day: u32) -> Date<Self> { ... }
        fn ymd_opt(
            &self,
            year: i32,
            month: u32,
            day: u32
        ) -> LocalResult<Date<Self>> { ... }
        fn yo(&self, year: i32, ordinal: u32) -> Date<Self> { ... }
        fn yo_opt(&self, year: i32, ordinal: u32) -> LocalResult<Date<Self>> { ... }
        fn isoywd(&self, year: i32, week: u32, weekday: Weekday) -> Date<Self> { ... }
        fn isoywd_opt(
            &self,
            year: i32,
            week: u32,
            weekday: Weekday
        ) -> LocalResult<Date<Self>> { ... }
        fn timestamp(&self, secs: i64, nsecs: u32) -> DateTime<Self> { ... }
        fn timestamp_opt(
            &self,
            secs: i64,
            nsecs: u32
        ) -> LocalResult<DateTime<Self>> { ... }
        fn timestamp_millis(&self, millis: i64) -> DateTime<Self> { ... }
        fn timestamp_millis_opt(&self, millis: i64) -> LocalResult<DateTime<Self>> { ... }
        fn timestamp_nanos(&self, nanos: i64) -> DateTime<Self> { ... }
        fn datetime_from_str(
            &self,
            s: &str,
            fmt: &str
        ) -> ParseResult<DateTime<Self>> { ... }
        fn from_local_date(&self, local: &NaiveDate) -> LocalResult<Date<Self>> { ... }
        fn from_local_datetime(
            &self,
            local: &NaiveDateTime
        ) -> LocalResult<DateTime<Self>> { ... }
        fn from_utc_date(&self, utc: &NaiveDate) -> Date<Self> { ... }
        fn from_utc_datetime(&self, utc: &NaiveDateTime) -> DateTime<Self> { ... }
    }

The time zone.

The methods here are the primarily constructors for `Date` and `DateTime` types.

## Associated Types

### `type Offset: Offset` [src]

An associated offset type. This type is used to store the actual offset in date and time types. The original `TimeZone` value can be recovered via `TimeZone::from_offset`.

Loading content...

## Required methods

### `fn from_offset(offset: &Self::Offset) -> Self` [src]

Reconstructs the time zone from the offset.

### `fn offset_from_local_date(&self, local: &NaiveDate) -> LocalResult<Self::Offset>` [src]

Creates the offset(s) for given local `NaiveDate` if possible.

### `fn offset_from_local_datetime(
&self,
local: &NaiveDateTime
) -> LocalResult<Self::Offset>` [src]

Creates the offset(s) for given local `NaiveDateTime` if possible.

### `fn offset_from_utc_date(&self, utc: &NaiveDate) -> Self::Offset` [src]

Creates the offset for given UTC `NaiveDate`. This cannot fail.

### `fn offset_from_utc_datetime(&self, utc: &NaiveDateTime) -> Self::Offset` [src]

Creates the offset for given UTC `NaiveDateTime`. This cannot fail.

Loading content...

## Provided methods

### `fn ymd(&self, year: i32, month: u32, day: u32) -> Date<Self>` [src]

Makes a new `Date` from year, month, day and the current time zone. This assumes the proleptic Gregorian calendar, with the year 0 being 1 BCE.

The time zone normally does not affect the date (unless it is between UTC-24 and UTC+24), but it will propagate to the `DateTime` values constructed via this date.

Panics on the out-of-range date, invalid month and/or day.

# Example

    use chrono::{Utc, TimeZone};

    assert_eq!(Utc.ymd(2015, 5, 15).to_string(), "2015-05-15UTC");

### `fn ymd_opt(&self, year: i32, month: u32, day: u32) -> LocalResult<Date<Self>>` [src]

Makes a new `Date` from year, month, day and the current time zone. This assumes the proleptic Gregorian calendar, with the year 0 being 1 BCE.

The time zone normally does not affect the date (unless it is between UTC-24 and UTC+24), but it will propagate to the `DateTime` values constructed via this date.

Returns `None` on the out-of-range date, invalid month and/or day.

# Example

    use chrono::{Utc, LocalResult, TimeZone};

    assert_eq!(Utc.ymd_opt(2015, 5, 15).unwrap().to_string(), "2015-05-15UTC");
    assert_eq!(Utc.ymd_opt(2000, 0, 0), LocalResult::None);

### `fn yo(&self, year: i32, ordinal: u32) -> Date<Self>` [src]

Makes a new `Date` from year, day of year (DOY or “ordinal”) and the current time zone. This assumes the proleptic Gregorian calendar, with the year 0 being 1 BCE.

The time zone normally does not affect the date (unless it is between UTC-24 and UTC+24), but it will propagate to the `DateTime` values constructed via this date.

Panics on the out-of-range date and/or invalid DOY.

# Example

    use chrono::{Utc, TimeZone};

    assert_eq!(Utc.yo(2015, 135).to_string(), "2015-05-15UTC");

### `fn yo_opt(&self, year: i32, ordinal: u32) -> LocalResult<Date<Self>>` [src]

Makes a new `Date` from year, day of year (DOY or “ordinal”) and the current time zone. This assumes the proleptic Gregorian calendar, with the year 0 being 1 BCE.

The time zone normally does not affect the date (unless it is between UTC-24 and UTC+24), but it will propagate to the `DateTime` values constructed via this date.

Returns `None` on the out-of-range date and/or invalid DOY.

### `fn isoywd(&self, year: i32, week: u32, weekday: Weekday) -> Date<Self>` [src]

Makes a new `Date` from ISO week date (year and week number), day of the week (DOW) and the current time zone. This assumes the proleptic Gregorian calendar, with the year 0 being 1 BCE. The resulting `Date` may have a different year from the input year.

The time zone normally does not affect the date (unless it is between UTC-24 and UTC+24), but it will propagate to the `DateTime` values constructed via this date.

Panics on the out-of-range date and/or invalid week number.

# Example

    use chrono::{Utc, Weekday, TimeZone};

    assert_eq!(Utc.isoywd(2015, 20, Weekday::Fri).to_string(), "2015-05-15UTC");

### `fn isoywd_opt(
&self,
year: i32,
week: u32,
weekday: Weekday
) -> LocalResult<Date<Self>>` [src]

Makes a new `Date` from ISO week date (year and week number), day of the week (DOW) and the current time zone. This assumes the proleptic Gregorian calendar, with the year 0 being 1 BCE. The resulting `Date` may have a different year from the input year.

The time zone normally does not affect the date (unless it is between UTC-24 and UTC+24), but it will propagate to the `DateTime` values constructed via this date.

Returns `None` on the out-of-range date and/or invalid week number.

### `fn timestamp(&self, secs: i64, nsecs: u32) -> DateTime<Self>` [src]

Makes a new `DateTime` from the number of non-leap seconds since January 1, 1970 0:00:00 UTC (aka “UNIX timestamp”) and the number of nanoseconds since the last whole non-leap second.

Panics on the out-of-range number of seconds and/or invalid nanosecond, for a non-panicking version see `timestamp_opt`.

# Example

    use chrono::{Utc, TimeZone};

    assert_eq!(Utc.timestamp(1431648000, 0).to_string(), "2015-05-15 00:00:00 UTC");

### `fn timestamp_opt(&self, secs: i64, nsecs: u32) -> LocalResult<DateTime<Self>>` [src]

Makes a new `DateTime` from the number of non-leap seconds since January 1, 1970 0:00:00 UTC (aka “UNIX timestamp”) and the number of nanoseconds since the last whole non-leap second.

Returns `LocalResult::None` on out-of-range number of seconds and/or invalid nanosecond, otherwise always returns `LocalResult::Single`.

### `fn timestamp_millis(&self, millis: i64) -> DateTime<Self>` [src]

Makes a new `DateTime` from the number of non-leap milliseconds since January 1, 1970 0:00:00 UTC (aka “UNIX timestamp”).

Panics on out-of-range number of milliseconds for a non-panicking version see `timestamp_millis_opt`.

# Example

    use chrono::{Utc, TimeZone};

    assert_eq!(Utc.timestamp_millis(1431648000).timestamp(), 1431648);

### `fn timestamp_millis_opt(&self, millis: i64) -> LocalResult<DateTime<Self>>` [src]

Makes a new `DateTime` from the number of non-leap milliseconds since January 1, 1970 0:00:00 UTC (aka “UNIX timestamp”).

Returns `LocalResult::None` on out-of-range number of milliseconds and/or invalid nanosecond, otherwise always returns `LocalResult::Single`.

# Example

    use chrono::{Utc, TimeZone, LocalResult};
    match Utc.timestamp_millis_opt(1431648000) {
        LocalResult::Single(dt) => assert_eq!(dt.timestamp(), 1431648),
        _ => panic!("Incorrect timestamp_millis"),
    };

### `fn timestamp_nanos(&self, nanos: i64) -> DateTime<Self>` [src]

Makes a new `DateTime` from the number of non-leap nanoseconds since January 1, 1970 0:00:00 UTC (aka “UNIX timestamp”).

Unlike `timestamp_millis`, this never panics.

# Example

    use chrono::{Utc, TimeZone};

    assert_eq!(Utc.timestamp_nanos(1431648000000000).timestamp(), 1431648);

### `fn datetime_from_str(&self, s: &str, fmt: &str) -> ParseResult<DateTime<Self>>` [src]

Parses a string with the specified format string and returns a `DateTime` with the current offset. See the `format::strftime` module on the supported escape sequences.

If the format does not include offsets, the current offset is assumed; otherwise the input should have a matching UTC offset.

See also `DateTime::parse_from_str` which gives a local `DateTime` with parsed `FixedOffset`.

### `fn from_local_date(&self, local: &NaiveDate) -> LocalResult<Date<Self>>` [src]

Converts the local `NaiveDate` to the timezone-aware `Date` if possible.

### `fn from_local_datetime(
&self,
local: &NaiveDateTime
) -> LocalResult<DateTime<Self>>` [src]

Converts the local `NaiveDateTime` to the timezone-aware `DateTime` if possible.

### `fn from_utc_date(&self, utc: &NaiveDate) -> Date<Self>` [src]

Converts the UTC `NaiveDate` to the local time. The UTC is continuous and thus this cannot fail (but can give the duplicate local time).

### `fn from_utc_datetime(&self, utc: &NaiveDateTime) -> DateTime<Self>` [src]

Converts the UTC `NaiveDateTime` to the local time. The UTC is continuous and thus this cannot fail (but can give the duplicate local time).

Loading content...

## Implementors

### `impl TimeZone for FixedOffset` [src]

#### `type Offset = FixedOffset`

#### `fn from_offset(offset: &FixedOffset) -> FixedOffset` [src]

#### `fn offset_from_local_date(&self, _local: &NaiveDate) -> LocalResult<FixedOffset>` [src]

#### `fn offset_from_local_datetime(
&self,
_local: &NaiveDateTime
) -> LocalResult<FixedOffset>` [src]

#### `fn offset_from_utc_date(&self, _utc: &NaiveDate) -> FixedOffset` [src]

#### `fn offset_from_utc_datetime(&self, _utc: &NaiveDateTime) -> FixedOffset` [src]

### `impl TimeZone for Local` [src]

#### `type Offset = FixedOffset`

#### `fn from_offset(_offset: &FixedOffset) -> Local` [src]

#### `fn offset_from_local_date(&self, local: &NaiveDate) -> LocalResult<FixedOffset>` [src]

#### `fn offset_from_local_datetime(
&self,
local: &NaiveDateTime
) -> LocalResult<FixedOffset>` [src]

#### `fn offset_from_utc_date(&self, utc: &NaiveDate) -> FixedOffset` [src]

#### `fn offset_from_utc_datetime(&self, utc: &NaiveDateTime) -> FixedOffset` [src]

#### `fn from_local_date(&self, local: &NaiveDate) -> LocalResult<Date<Local>>` [src]

#### `fn from_local_datetime(
&self,
local: &NaiveDateTime
) -> LocalResult<DateTime<Local>>` [src]

#### `fn from_utc_date(&self, utc: &NaiveDate) -> Date<Local>` [src]

#### `fn from_utc_datetime(&self, utc: &NaiveDateTime) -> DateTime<Local>` [src]

### `impl TimeZone for Utc` [src]

#### `type Offset = Utc`

#### `fn from_offset(_state: &Utc) -> Utc` [src]

#### `fn offset_from_local_date(&self, _local: &NaiveDate) -> LocalResult<Utc>` [src]

#### `fn offset_from_local_datetime(&self, _local: &NaiveDateTime) -> LocalResult<Utc>` [src]

#### `fn offset_from_utc_date(&self, _utc: &NaiveDate) -> Utc` [src]

#### `fn offset_from_utc_datetime(&self, _utc: &NaiveDateTime) -> Utc` [src]

Loading content...