Trait TimeZone
pub trait TimeZone: Sized + Clone
The time zone.
The methods here are the primary constructors for the DateTime type.
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
TimeZonevalue can be recovered viaTimeZone::from_offset.
Required Methods
fn from_offset(offset: &Self::Offset) -> SelfReconstructs the time zone from the offset.
fn offset_from_local_date(&self, local: &NaiveDate) -> MappedLocalTime<Self::Offset>Creates the offset(s) for given local
NaiveDateif possible.fn offset_from_local_datetime(&self, local: &NaiveDateTime) -> MappedLocalTime<Self::Offset>Creates the offset(s) for given local
NaiveDateTimeif possible.fn offset_from_utc_date(&self, utc: &NaiveDate) -> Self::OffsetCreates the offset for given UTC
NaiveDate. This cannot fail.fn offset_from_utc_datetime(&self, utc: &NaiveDateTime) -> Self::OffsetCreates the offset for given UTC
NaiveDateTime. This cannot fail.
Provided Methods
fn with_ymd_and_hms(&self, year: i32, month: u32, day: u32, hour: u32, min: u32, sec: u32) -> MappedLocalTime<DateTime<Self>>Make a new
DateTimefrom year, month, day, time components and current time zone.This assumes the proleptic Gregorian calendar, with the year 0 being 1 BCE.
Returns
MappedLocalTime::Noneon invalid input data.fn ymd(&self, year: i32, month: u32, day: u32) -> Date<Self>Makes a new
Datefrom 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
DateTimevalues constructed via this date.Panics on the out-of-range date, invalid month and/or day.
fn ymd_opt(&self, year: i32, month: u32, day: u32) -> MappedLocalTime<Date<Self>>Makes a new
Datefrom 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
DateTimevalues constructed via this date.Returns
Noneon the out-of-range date, invalid month and/or day.fn yo(&self, year: i32, ordinal: u32) -> Date<Self>Makes a new
Datefrom 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
DateTimevalues constructed via this date.Panics on the out-of-range date and/or invalid DOY.
fn yo_opt(&self, year: i32, ordinal: u32) -> MappedLocalTime<Date<Self>>Makes a new
Datefrom 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
DateTimevalues constructed via this date.Returns
Noneon the out-of-range date and/or invalid DOY.fn isoywd(&self, year: i32, week: u32, weekday: Weekday) -> Date<Self>Makes a new
Datefrom 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 resultingDatemay 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
DateTimevalues constructed via this date.Panics on the out-of-range date and/or invalid week number.
fn isoywd_opt(&self, year: i32, week: u32, weekday: Weekday) -> MappedLocalTime<Date<Self>>Makes a new
Datefrom 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 resultingDatemay 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
DateTimevalues constructed via this date.Returns
Noneon the out-of-range date and/or invalid week number.fn timestamp(&self, secs: i64, nsecs: u32) -> DateTime<Self>Makes a new
DateTimefrom 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.fn timestamp_opt(&self, secs: i64, nsecs: u32) -> MappedLocalTime<DateTime<Self>>Makes a new
DateTimefrom 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::Noneon out-of-range number of seconds and/or invalid nanosecond, otherwise always returnsMappedLocalTime::Single.Example
use ; assert_eq!;fn timestamp_millis(&self, millis: i64) -> DateTime<Self>Makes a new
DateTimefrom 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.fn timestamp_millis_opt(&self, millis: i64) -> MappedLocalTime<DateTime<Self>>Makes a new
DateTimefrom the number of non-leap milliseconds since January 1, 1970 0:00:00 UTC (aka "UNIX timestamp").Returns
MappedLocalTime::Noneon out-of-range number of milliseconds and/or invalid nanosecond, otherwise always returnsMappedLocalTime::Single.Example
use ; match Utc.timestamp_millis_opt ;fn timestamp_nanos(&self, nanos: i64) -> DateTime<Self>Makes a new
DateTimefrom 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 ; assert_eq!;fn timestamp_micros(&self, micros: i64) -> MappedLocalTime<DateTime<Self>>Makes a new
DateTimefrom the number of non-leap microseconds since January 1, 1970 0:00:00 UTC (aka "UNIX timestamp").Example
use ; assert_eq!;fn datetime_from_str(&self, s: &str, fmt: &str) -> ParseResult<DateTime<Self>>Parses a string with the specified format string and returns a
DateTimewith the current offset.See the
crate::format::strftimemodule 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_strwhich gives aDateTimewith parsedFixedOffset.See also
NaiveDateTime::parse_from_strwhich gives aNaiveDateTimewithout an offset, but can be converted to aDateTimewithNaiveDateTime::and_utcorNaiveDateTime::and_local_timezone.fn from_local_date(&self, local: &NaiveDate) -> MappedLocalTime<Date<Self>>Converts the local
NaiveDateto the timezone-awareDateif possible.fn from_local_datetime(&self, local: &NaiveDateTime) -> MappedLocalTime<DateTime<Self>>Converts the local
NaiveDateTimeto the timezone-awareDateTimeif possible.fn from_utc_date(&self, utc: &NaiveDate) -> Date<Self>Converts the UTC
NaiveDateto 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
NaiveDateTimeto the local time. The UTC is continuous and thus this cannot fail (but can give the duplicate local time).