chrono

Trait TimeZone

Source
pub trait TimeZone: Sized + Clone {
    type Offset: Offset;

Show 23 methods // Required methods 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; // Provided methods fn with_ymd_and_hms( &self, year: i32, month: u32, day: u32, hour: u32, min: u32, sec: u32, ) -> LocalResult<DateTime<Self>> { ... } 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 timestamp_micros(&self, micros: i64) -> 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> { ... }
}
Expand description

The time zone.

The methods here are the primary constructors for the DateTime type.

Required Associated Types§

Source

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§

Source

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

Reconstructs the time zone from the offset.

Source

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

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

Source

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

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

Source

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

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

Source

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

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

Provided Methods§

Source

fn with_ymd_and_hms( &self, year: i32, month: u32, day: u32, hour: u32, min: u32, sec: u32, ) -> LocalResult<DateTime<Self>>

Make a new DateTime from year, month, day, time components and current time zone.

This assumes the proleptic Gregorian calendar, with the year 0 being 1 BCE.

Returns LocalResult::None on invalid input data.

Source

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

👎Deprecated since 0.4.23: use with_ymd_and_hms() instead

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.

Source

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

👎Deprecated since 0.4.23: use with_ymd_and_hms() instead

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.

Source

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

👎Deprecated since 0.4.23: use from_local_datetime() with a NaiveDateTime instead

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.

Source

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

👎Deprecated since 0.4.23: use from_local_datetime() with a NaiveDateTime instead

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.

Source

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

👎Deprecated since 0.4.23: use from_local_datetime() with a NaiveDateTime instead

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.

Source

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

👎Deprecated since 0.4.23: use from_local_datetime() with a NaiveDateTime instead

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.

Source

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

👎Deprecated since 0.4.23: use timestamp_opt() instead

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.

The nanosecond part can exceed 1,000,000,000 in order to represent a leap second, but only when secs % 60 == 59. (The true “UNIX timestamp” cannot represent a leap second unambiguously.)

§Panics

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

Source

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.

The nanosecond part can exceed 1,000,000,000 in order to represent a leap second, but only when secs % 60 == 59. (The true “UNIX timestamp” cannot represent a leap second unambiguously.)

§Errors

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

§Example
use chrono::{Utc, TimeZone};

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

fn timestamp_millis(&self, millis: i64) -> DateTime<Self>

👎Deprecated since 0.4.23: use timestamp_millis_opt() instead

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.

Source

fn timestamp_millis_opt(&self, millis: i64) -> LocalResult<DateTime<Self>>

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"),
};
Source

fn timestamp_nanos(&self, nanos: i64) -> DateTime<Self>

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_opt, this never fails.

§Example
use chrono::{Utc, TimeZone};

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

fn timestamp_micros(&self, micros: i64) -> LocalResult<DateTime<Self>>

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

§Example
use chrono::{Utc, TimeZone};

assert_eq!(Utc.timestamp_micros(1431648000000).unwrap().timestamp(), 1431648);
Source

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

👎Deprecated since 0.4.29: use DateTime::parse_from_str or NaiveDateTime::parse_from_str with and_utc() or and_local_timezone() instead

Parses a string with the specified format string and returns a DateTime with the current offset.

See the crate::format::strftime module on the supported escape sequences.

If the to-be-parsed string includes an offset, it must match the offset of the TimeZone, otherwise an error will be returned.

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

See also NaiveDateTime::parse_from_str which gives a NaiveDateTime without an offset, but can be converted to a DateTime with NaiveDateTime::and_utc or NaiveDateTime::and_local_timezone.

Source

fn from_local_date(&self, local: &NaiveDate) -> LocalResult<Date<Self>>

👎Deprecated since 0.4.23: use from_local_datetime() instead

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

Source

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

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

Source

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

👎Deprecated since 0.4.23: use from_utc_datetime() instead

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

Source

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

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§