pub trait TimeZone: Sized + Clone {
type Offset: Offset;
Show 21 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 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 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
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 ymd(&self, year: i32, month: u32, day: u32) -> Date<Self>
fn ymd(&self, year: i32, month: u32, day: u32) -> Date<Self>
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.
§Example
use chrono::{Utc, TimeZone};
assert_eq!(Utc.ymd(2015, 5, 15).to_string(), "2015-05-15UTC");
Sourcefn ymd_opt(&self, year: i32, month: u32, day: u32) -> LocalResult<Date<Self>>
fn ymd_opt(&self, year: i32, month: u32, day: u32) -> LocalResult<Date<Self>>
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.
§Example
use chrono::{Utc, LocalResult, TimeZone};
assert_eq!(Utc.ymd_opt(2015, 5, 15).unwrap().to_string(), "2015-05-15UTC");
assert_eq!(Utc.ymd_opt(2000, 0, 0), LocalResult::None);
Sourcefn yo(&self, year: i32, ordinal: u32) -> Date<Self>
fn yo(&self, year: i32, ordinal: u32) -> Date<Self>
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.
§Example
use chrono::{Utc, TimeZone};
assert_eq!(Utc.yo(2015, 135).to_string(), "2015-05-15UTC");
Sourcefn yo_opt(&self, year: i32, ordinal: u32) -> LocalResult<Date<Self>>
fn yo_opt(&self, year: i32, ordinal: u32) -> LocalResult<Date<Self>>
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.
Sourcefn isoywd(&self, year: i32, week: u32, weekday: Weekday) -> Date<Self>
fn isoywd(&self, year: i32, week: u32, weekday: Weekday) -> Date<Self>
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.
§Example
use chrono::{Utc, Weekday, TimeZone};
assert_eq!(Utc.isoywd(2015, 20, Weekday::Fri).to_string(), "2015-05-15UTC");
Sourcefn isoywd_opt(
&self,
year: i32,
week: u32,
weekday: Weekday,
) -> LocalResult<Date<Self>>
fn isoywd_opt( &self, year: i32, week: u32, weekday: Weekday, ) -> LocalResult<Date<Self>>
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.
Sourcefn timestamp(&self, secs: i64, nsecs: u32) -> DateTime<Self>
fn timestamp(&self, secs: i64, nsecs: u32) -> 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.
Panics on the out-of-range number of seconds and/or invalid nanosecond,
for a non-panicking version see timestamp_opt
.
§Example
use chrono::{Utc, TimeZone};
assert_eq!(Utc.timestamp(1431648000, 0).to_string(), "2015-05-15 00:00:00 UTC");
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.
Returns LocalResult::None
on out-of-range number of seconds and/or
invalid nanosecond, otherwise always returns LocalResult::Single
.
Sourcefn timestamp_millis(&self, millis: i64) -> DateTime<Self>
fn timestamp_millis(&self, millis: i64) -> DateTime<Self>
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
.
§Example
use chrono::{Utc, TimeZone};
assert_eq!(Utc.timestamp_millis(1431648000).timestamp(), 1431648);
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 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"),
};
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
, this never
panics.
§Example
use chrono::{Utc, TimeZone};
assert_eq!(Utc.timestamp_nanos(1431648000000000).timestamp(), 1431648);
Sourcefn datetime_from_str(
&self,
s: &str,
fmt: &str,
) -> Result<DateTime<Self>, ParseError>
fn datetime_from_str( &self, s: &str, fmt: &str, ) -> Result<DateTime<Self>, ParseError>
Parses a string with the specified format string and
returns a DateTime
with the current offset.
See the format::strftime
module
on the supported escape sequences.
If the format does not include offsets, the current offset is assumed; otherwise the input should have a matching UTC offset.
See also DateTime::parse_from_str
which gives a local DateTime
with parsed FixedOffset
.
Sourcefn from_local_date(&self, local: &NaiveDate) -> LocalResult<Date<Self>>
fn from_local_date(&self, local: &NaiveDate) -> LocalResult<Date<Self>>
Converts 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>
fn from_utc_date(&self, utc: &NaiveDate) -> Date<Self>
Converts 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).
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.