Trait TimeZone
trait TimeZone: Sized + Clone
The time zone.
The methods here are the primary constructors for the DateTime type.
Associated Types
type Offset: TraitBound { trait_: Path { path: "Offset", id: Id(279), args: None }, generic_params: [], modifier: None }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 as >::Offset) -> SelfReconstructs the time zone from the offset.
fn offset_from_local_date(self: &Self, local: &NaiveDate) -> MappedLocalTime<<Self as >::Offset>Creates the offset(s) for given local
NaiveDateif possible.fn offset_from_local_datetime(self: &Self, local: &NaiveDateTime) -> MappedLocalTime<<Self as >::Offset>Creates the offset(s) for given local
NaiveDateTimeif possible.fn offset_from_utc_date(self: &Self, utc: &NaiveDate) -> <Self as >::OffsetCreates the offset for given UTC
NaiveDate. This cannot fail.fn offset_from_utc_datetime(self: &Self, utc: &NaiveDateTime) -> <Self as >::OffsetCreates the offset for given UTC
NaiveDateTime. This cannot fail.
Provided Methods
fn with_ymd_and_hms(self: &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: &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: &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: &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: &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: &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: &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: &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: &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: &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: &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: &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: &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: &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: &Self, local: &NaiveDate) -> MappedLocalTime<Date<Self>>Converts the local
NaiveDateto the timezone-awareDateif possible.fn from_local_datetime(self: &Self, local: &NaiveDateTime) -> MappedLocalTime<DateTime<Self>>Converts the local
NaiveDateTimeto the timezone-awareDateTimeif possible.fn from_utc_date(self: &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: &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).
Implementors
impl TimeZone for Localimpl TimeZone for FixedOffsetimpl TimeZone for Utc