Trait chrono::offset::TimeZone [-] [+] [src]

pub trait TimeZone: Sized {
    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 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.

Associated Types

type Offset: Offset

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.

Required Methods

fn from_offset(offset: &Self::Offset) -> Self

Reconstructs the time zone from the offset.

fn offset_from_local_date(&self, local: &NaiveDate) -> LocalResult<Self::Offset>

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

fn offset_from_local_datetime(&self, local: &NaiveDateTime) -> LocalResult<Self::Offset>

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

fn offset_from_utc_date(&self, utc: &NaiveDate) -> Self::Offset

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

fn offset_from_utc_datetime(&self, utc: &NaiveDateTime) -> Self::Offset

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

Provided Methods

fn ymd(&self, year: i32, month: u32, day: u32) -> Date<Self>

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.

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

fn ymd_opt(&self, year: i32, month: u32, day: u32) -> LocalResult<Date<Self>>

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.

fn yo(&self, year: i32, ordinal: u32) -> Date<Self>

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.

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

fn yo_opt(&self, year: i32, ordinal: u32) -> LocalResult<Date<Self>>

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>

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.

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

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

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>

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.

Fails on the out-of-range number of seconds and/or invalid nanosecond.

fn timestamp_opt(&self, secs: i64, nsecs: u32) -> LocalResult<DateTime<Self>>

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 None on the out-of-range number of seconds and/or invalid nanosecond.

fn datetime_from_str(&self, s: &str, fmt: &str) -> ParseResult<DateTime<Self>>

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>>

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

fn from_local_datetime(&self, local: &NaiveDateTime) -> LocalResult<DateTime<Self>>

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

fn from_utc_date(&self, utc: &NaiveDate) -> Date<Self>

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>

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

Implementors