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,
) -> Result<DateTime<Self>, ParseError> { ... }
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§
Required Methods§
sourcefn from_offset(offset: &Self::Offset) -> Self
fn from_offset(offset: &Self::Offset) -> Self
Reconstructs the time zone from the offset.
sourcefn offset_from_local_date(&self, local: &NaiveDate) -> LocalResult<Self::Offset>
fn offset_from_local_date(&self, local: &NaiveDate) -> LocalResult<Self::Offset>
Creates the offset(s) for given local NaiveDate
if possible.
sourcefn offset_from_local_datetime(
&self,
local: &NaiveDateTime,
) -> LocalResult<Self::Offset>
fn offset_from_local_datetime( &self, local: &NaiveDateTime, ) -> LocalResult<Self::Offset>
Creates the offset(s) for given local NaiveDateTime
if possible.
sourcefn offset_from_utc_date(&self, utc: &NaiveDate) -> Self::Offset
fn offset_from_utc_date(&self, utc: &NaiveDate) -> Self::Offset
Creates the offset for given UTC NaiveDate
. This cannot fail.
sourcefn offset_from_utc_datetime(&self, utc: &NaiveDateTime) -> Self::Offset
fn offset_from_utc_datetime(&self, utc: &NaiveDateTime) -> Self::Offset
Creates the offset for given UTC NaiveDateTime
. This cannot fail.
Provided Methods§
sourcefn with_ymd_and_hms(
&self,
year: i32,
month: u32,
day: u32,
hour: u32,
min: u32,
sec: u32,
) -> LocalResult<DateTime<Self>>
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 MappedLocalTime::None
on invalid input data.
sourcefn ymd(&self, year: i32, month: u32, day: u32) -> Date<Self>
👎Deprecated since 0.4.23: use with_ymd_and_hms()
instead
fn ymd(&self, year: i32, month: u32, day: u32) -> Date<Self>
with_ymd_and_hms()
insteadMakes 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.
sourcefn ymd_opt(&self, year: i32, month: u32, day: u32) -> LocalResult<Date<Self>>
👎Deprecated since 0.4.23: use with_ymd_and_hms()
instead
fn ymd_opt(&self, year: i32, month: u32, day: u32) -> LocalResult<Date<Self>>
with_ymd_and_hms()
insteadMakes 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.
sourcefn yo(&self, year: i32, ordinal: u32) -> Date<Self>
👎Deprecated since 0.4.23: use from_local_datetime()
with a NaiveDateTime
instead
fn yo(&self, year: i32, ordinal: u32) -> Date<Self>
from_local_datetime()
with a NaiveDateTime
insteadMakes 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.
sourcefn yo_opt(&self, year: i32, ordinal: u32) -> LocalResult<Date<Self>>
👎Deprecated since 0.4.23: use from_local_datetime()
with a NaiveDateTime
instead
fn yo_opt(&self, year: i32, ordinal: u32) -> LocalResult<Date<Self>>
from_local_datetime()
with a NaiveDateTime
insteadMakes 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.
sourcefn isoywd(&self, year: i32, week: u32, weekday: Weekday) -> Date<Self>
👎Deprecated since 0.4.23: use from_local_datetime()
with a NaiveDateTime
instead
fn isoywd(&self, year: i32, week: u32, weekday: Weekday) -> Date<Self>
from_local_datetime()
with a NaiveDateTime
insteadMakes 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.
sourcefn 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
fn isoywd_opt( &self, year: i32, week: u32, weekday: Weekday, ) -> LocalResult<Date<Self>>
from_local_datetime()
with a NaiveDateTime
insteadMakes 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.
sourcefn timestamp(&self, secs: i64, nsecs: u32) -> DateTime<Self>
👎Deprecated since 0.4.23: use timestamp_opt()
instead
fn timestamp(&self, secs: i64, nsecs: u32) -> DateTime<Self>
timestamp_opt()
insteadMakes 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
.
sourcefn timestamp_opt(&self, secs: i64, nsecs: u32) -> LocalResult<DateTime<Self>>
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 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");
sourcefn timestamp_millis(&self, millis: i64) -> DateTime<Self>
👎Deprecated since 0.4.23: use timestamp_millis_opt()
instead
fn timestamp_millis(&self, millis: i64) -> DateTime<Self>
timestamp_millis_opt()
insteadMakes 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
.
sourcefn timestamp_millis_opt(&self, millis: i64) -> LocalResult<DateTime<Self>>
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 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"),
};
sourcefn timestamp_nanos(&self, nanos: i64) -> DateTime<Self>
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);
sourcefn timestamp_micros(&self, micros: i64) -> LocalResult<DateTime<Self>>
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::{TimeZone, Utc};
assert_eq!(Utc.timestamp_micros(1431648000000).unwrap().timestamp(), 1431648);
sourcefn datetime_from_str(
&self,
s: &str,
fmt: &str,
) -> Result<DateTime<Self>, ParseError>
👎Deprecated since 0.4.29: use DateTime::parse_from_str
or NaiveDateTime::parse_from_str
with and_utc()
or and_local_timezone()
instead
fn datetime_from_str( &self, s: &str, fmt: &str, ) -> Result<DateTime<Self>, ParseError>
DateTime::parse_from_str
or NaiveDateTime::parse_from_str
with and_utc()
or and_local_timezone()
insteadParses 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
.
sourcefn from_local_date(&self, local: &NaiveDate) -> LocalResult<Date<Self>>
👎Deprecated since 0.4.23: use from_local_datetime()
instead
fn from_local_date(&self, local: &NaiveDate) -> LocalResult<Date<Self>>
from_local_datetime()
insteadConverts the local NaiveDate
to the timezone-aware Date
if possible.
sourcefn from_local_datetime(
&self,
local: &NaiveDateTime,
) -> LocalResult<DateTime<Self>>
fn from_local_datetime( &self, local: &NaiveDateTime, ) -> LocalResult<DateTime<Self>>
Converts the local NaiveDateTime
to the timezone-aware DateTime
if possible.
sourcefn from_utc_date(&self, utc: &NaiveDate) -> Date<Self>
👎Deprecated since 0.4.23: use from_utc_datetime()
instead
fn from_utc_date(&self, utc: &NaiveDate) -> Date<Self>
from_utc_datetime()
insteadConverts the UTC NaiveDate
to the local time.
The UTC is continuous and thus this cannot fail (but can give the duplicate local time).
sourcefn from_utc_datetime(&self, utc: &NaiveDateTime) -> DateTime<Self>
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).