pub struct Utc;Expand description
UTC — Coordinated Universal Time
- UTC = TAI − LS(t)
- Requires a runtime leap-second table
- Format:
"UTC +Ss Nns"
Trait Implementations§
Source§impl IntoScale<Utc> for Time<Glonass>
impl IntoScale<Utc> for Time<Glonass>
Source§fn into_scale(self) -> Result<Time<Utc>, GnssTimeError>
fn into_scale(self) -> Result<Time<Utc>, GnssTimeError>
GLONASS -> UTC: fixed epoch shift.
GLONASS uses UTC(SU), a time scale offset from UTC by +3 hours and including leap seconds.
use gnss_time::{DurationParts, Glonass, IntoScale, Time, Utc};
let glo = Time::<Glonass>::from_day_tod(
0,
DurationParts {
seconds: 0,
nanos: 0,
},
)
.unwrap(); // GLONASS epoch
let utc: Time<Utc> = glo.into_scale().unwrap();
// UTC at the GLONASS epoch:
// 1995-12-31 21:00:00 UTC = 757_371_600 s from 1972
assert_eq!(utc.as_nanos(), 757_371_600_000_000_000);Source§impl IntoScaleWith<Utc> for Time<Beidou>
impl IntoScaleWith<Utc> for Time<Beidou>
Source§fn into_scale_with<P: LeapSecondsProvider>(
self,
ls: P,
) -> Result<Time<Utc>, GnssTimeError>
fn into_scale_with<P: LeapSecondsProvider>( self, ls: P, ) -> Result<Time<Utc>, GnssTimeError>
BeiDou -> UTC via GPS.
Source§fn into_scale_with_checked<P: LeapSecondsProvider>(
self,
ls: P,
) -> Result<ConvertResult<Time<Utc>>, GnssTimeError>
fn into_scale_with_checked<P: LeapSecondsProvider>( self, ls: P, ) -> Result<ConvertResult<Time<Utc>>, GnssTimeError>
Converts and reports whether the result is ambiguous due to a
leap-second insertion.
Source§impl IntoScaleWith<Utc> for Time<Galileo>
impl IntoScaleWith<Utc> for Time<Galileo>
Source§fn into_scale_with<P: LeapSecondsProvider>(
self,
ls: P,
) -> Result<Time<Utc>, GnssTimeError>
fn into_scale_with<P: LeapSecondsProvider>( self, ls: P, ) -> Result<Time<Utc>, GnssTimeError>
Galileo -> UTC via GPS (both share the same TAI offset of 19s).
Source§fn into_scale_with_checked<P: LeapSecondsProvider>(
self,
ls: P,
) -> Result<ConvertResult<Time<Utc>>, GnssTimeError>
fn into_scale_with_checked<P: LeapSecondsProvider>( self, ls: P, ) -> Result<ConvertResult<Time<Utc>>, GnssTimeError>
Converts and reports whether the result is ambiguous due to a
leap-second insertion.
Source§impl IntoScaleWith<Utc> for Time<Gps>
impl IntoScaleWith<Utc> for Time<Gps>
Source§fn into_scale_with<P: LeapSecondsProvider>(
self,
ls: P,
) -> Result<Time<Utc>, GnssTimeError>
fn into_scale_with<P: LeapSecondsProvider>( self, ls: P, ) -> Result<Time<Utc>, GnssTimeError>
GPS -> UTC with leap-second context.
Round-trip consistency: GPS -> UTC -> GPS is exact (< 1 ns) for all
moments except the one-second leap-second insertion window.
use gnss_time::{Gps, IntoScaleWith, LeapSeconds, Time, Utc};
let ls = LeapSeconds::builtin();
let gps = Time::<Gps>::from_seconds(1_167_264_018); // 2017-01-01 GPS
let utc: Time<Utc> = gps.into_scale_with(ls).unwrap();
let delta = gps.as_seconds() as i64 - utc.as_seconds() as i64 + 252_892_800_i64;
// GPS leads UTC by 18 s → UTC is 18 s earlier
assert_eq!(delta, 18);Source§fn into_scale_with_checked<P: LeapSecondsProvider>(
self,
ls: P,
) -> Result<ConvertResult<Time<Utc>>, GnssTimeError>
fn into_scale_with_checked<P: LeapSecondsProvider>( self, ls: P, ) -> Result<ConvertResult<Time<Utc>>, GnssTimeError>
Converts and reports whether the result is ambiguous due to a
leap-second insertion.
Source§impl TimeScale for Utc
impl TimeScale for Utc
Source§const OFFSET_TO_TAI: OffsetToTai = OffsetToTai::Contextual
const OFFSET_TO_TAI: OffsetToTai = OffsetToTai::Contextual
Offset relative to TAI: Read more
Source§const EPOCH_CIVIL: CivilDate
const EPOCH_CIVIL: CivilDate
Civil epoch of the scale (where time == 0).
Source§const DISPLAY_STYLE: DisplayStyle = DisplayStyle::Simple
const DISPLAY_STYLE: DisplayStyle = DisplayStyle::Simple
Formatting style for display output.
impl Copy for Utc
impl Eq for Utc
impl StructuralPartialEq for Utc
Auto Trait Implementations§
impl Freeze for Utc
impl RefUnwindSafe for Utc
impl Send for Utc
impl Sync for Utc
impl Unpin for Utc
impl UnsafeUnpin for Utc
impl UnwindSafe for Utc
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more