#[non_exhaustive]pub struct DateTime {
pub year: i32,
pub month: i32,
pub day: i32,
pub hours: i32,
pub minutes: i32,
pub seconds: i32,
pub nanos: i32,
pub time_offset: Option<TimeOffset>,
}Expand description
Represents civil time (or occasionally physical time).
This type can represent a civil time in one of a few possible ways:
- When utc_offset is set and time_zone is unset: a civil time on a calendar day with a particular offset from UTC.
- When time_zone is set and utc_offset is unset: a civil time on a calendar day in a particular time zone.
- When neither time_zone nor utc_offset is set: a civil time on a calendar day in local time.
The date is relative to the Proleptic Gregorian Calendar.
If year is 0, the DateTime is considered not to have a specific year. month and day must have valid, non-zero values.
This type may also be used to represent a physical time if all the date and
time fields are set and either case of the time_offset oneof is set.
Consider using Timestamp message for physical time instead. If your use
case also would like to store the user’s timezone, that can be done in
another field.
This type is more flexible than some applications may want. Make sure to document and validate your application’s limitations.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.year: i32Optional. Year of date. Must be from 1 to 9999, or 0 if specifying a datetime without a year.
month: i32Required. Month of year. Must be from 1 to 12.
day: i32Required. Day of month. Must be from 1 to 31 and valid for the year and month.
hours: i32Required. Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value “24:00:00” for scenarios like business closing time.
minutes: i32Required. Minutes of hour of day. Must be from 0 to 59.
seconds: i32Required. Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
nanos: i32Required. Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
time_offset: Option<TimeOffset>Optional. Specifies either the UTC offset or the time zone of the DateTime. Choose carefully between them, considering that time zone data may change in the future (for example, a country modifies their DST start/end dates, and future DateTimes in the affected range had already been stored). If omitted, the DateTime is considered to be in local time.
Implementations§
Source§impl DateTime
impl DateTime
Sourcepub fn set_minutes<T: Into<i32>>(self, v: T) -> Self
pub fn set_minutes<T: Into<i32>>(self, v: T) -> Self
Sets the value of minutes.
Sourcepub fn set_seconds<T: Into<i32>>(self, v: T) -> Self
pub fn set_seconds<T: Into<i32>>(self, v: T) -> Self
Sets the value of seconds.
Sourcepub fn set_time_offset<T: Into<Option<TimeOffset>>>(self, v: T) -> Self
pub fn set_time_offset<T: Into<Option<TimeOffset>>>(self, v: T) -> Self
Sets the value of time_offset.
Sourcepub fn get_utc_offset(&self) -> Option<&Box<Duration>>
pub fn get_utc_offset(&self) -> Option<&Box<Duration>>
The value of time_offset
if it holds a UtcOffset, None if the field is not set or
holds a different branch.
Sourcepub fn get_time_zone(&self) -> Option<&Box<TimeZone>>
pub fn get_time_zone(&self) -> Option<&Box<TimeZone>>
The value of time_offset
if it holds a TimeZone, None if the field is not set or
holds a different branch.
Sourcepub fn set_utc_offset<T: Into<Box<Duration>>>(self, v: T) -> Self
pub fn set_utc_offset<T: Into<Box<Duration>>>(self, v: T) -> Self
Sets the value of time_offset
to hold a UtcOffset.
Note that all the setters affecting time_offset are
mutually exclusive.
Sourcepub fn set_time_zone<T: Into<Box<TimeZone>>>(self, v: T) -> Self
pub fn set_time_zone<T: Into<Box<TimeZone>>>(self, v: T) -> Self
Sets the value of time_offset
to hold a TimeZone.
Note that all the setters affecting time_offset are
mutually exclusive.