Trait chrono::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 ) -> MappedLocalTime<Self::Offset>; fn offset_from_local_datetime( &self, local: &NaiveDateTime ) -> MappedLocalTime<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 ) -> MappedLocalTime<DateTime<Self>> { ... } fn ymd(&self, year: i32, month: u32, day: u32) -> Date<Self> { ... } fn ymd_opt( &self, year: i32, month: u32, day: u32 ) -> MappedLocalTime<Date<Self>> { ... } fn yo(&self, year: i32, ordinal: u32) -> Date<Self> { ... } fn yo_opt(&self, year: i32, ordinal: u32) -> MappedLocalTime<Date<Self>> { ... } fn isoywd(&self, year: i32, week: u32, weekday: Weekday) -> Date<Self> { ... } fn isoywd_opt( &self, year: i32, week: u32, weekday: Weekday ) -> MappedLocalTime<Date<Self>> { ... } fn timestamp(&self, secs: i64, nsecs: u32) -> DateTime<Self> { ... } fn timestamp_opt( &self, secs: i64, nsecs: u32 ) -> MappedLocalTime<DateTime<Self>> { ... } fn timestamp_millis(&self, millis: i64) -> DateTime<Self> { ... } fn timestamp_millis_opt( &self, millis: i64 ) -> MappedLocalTime<DateTime<Self>> { ... } fn timestamp_nanos(&self, nanos: i64) -> DateTime<Self> { ... } fn timestamp_micros(&self, micros: i64) -> MappedLocalTime<DateTime<Self>> { ... } fn datetime_from_str( &self, s: &str, fmt: &str ) -> ParseResult<DateTime<Self>> { ... } fn from_local_date(&self, local: &NaiveDate) -> MappedLocalTime<Date<Self>> { ... } fn from_local_datetime( &self, local: &NaiveDateTime ) -> MappedLocalTime<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 ) -> MappedLocalTime<Self::Offset>

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

source

fn offset_from_local_datetime( &self, local: &NaiveDateTime ) -> MappedLocalTime<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 ) -> MappedLocalTime<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 MappedLocalTime::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 ) -> MappedLocalTime<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) -> MappedLocalTime<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 ) -> MappedLocalTime<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 ) -> MappedLocalTime<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 MappedLocalTime::None on out-of-range number of seconds and/or invalid nanosecond, otherwise always returns MappedLocalTime::Single.

Example
use chrono::{TimeZone, Utc};

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) -> MappedLocalTime<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 MappedLocalTime::None on out-of-range number of milliseconds and/or invalid nanosecond, otherwise always returns MappedLocalTime::Single.

Example
use chrono::{MappedLocalTime, TimeZone, Utc};
match Utc.timestamp_millis_opt(1431648000) {
    MappedLocalTime::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::{TimeZone, Utc};

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

fn timestamp_micros(&self, micros: i64) -> MappedLocalTime<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::{TimeZone, Utc};

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

Implementors§