Get total number of leap seconds relative to gps time
11 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I have a gps time stamp from a gps receiver, I'd like to convert that to GMT/UTC date and time.
GpsTime = 1667089162.11771
DayToSecs = 24*60*60;
TimeZero = datetime(1970,1,1, 'Format', 'd-MMM-y HH:mm:ss.SSS Z');
Tvec = GpsTime/DayToSecs + TdmsTimeZero;
Do I need to also adjust for leap seconds? If so, How do I return the total number of leap seconds from 'leapseconds' instead of the timetable?
0 Kommentare
Antworten (2)
David Hill
am 13 Okt. 2022
Bearbeitet: David Hill
am 13 Okt. 2022
As long as the gps collection date is after 1 January 2017, then just subtract 18 seconds (37-19) see
Although your gps time seems to be in the future (not sure why).
GpsTime = 1667089162.11771;
utc=datetime(1980, 1, 6)+seconds(GpsTime-18);
utc=datetime(utc,'Format','yyyy-MM-dd HH:mm:ss.SSS')
0 Kommentare
James Tursa
am 23 Nov. 2024
Bearbeitet: James Tursa
am 23 Nov. 2024
To convert a GPS timestamp to a UTC time, use the UTCLeapSeconds time zone which automatically accounts for leap seconds in the background calculations. E.g.,
GpsTime = 1667089162.11771;
GPS_epoch = datetime(1980,1,6,'TimeZone','UTCLeapSeconds')
GPS_epoch + seconds(GpsTime)
My advise is to stick with the UTCLeapSeconds time zone exclusively when working with continuous time scales such as GPS, TT, TAI, etc.
(Same comment as David ... why is this in the future?)
If the timestamp in question is actually seconds from Modern UTC epoch and not GPS time as your post seems to allude to, then the calculations would be:
UtcTime = 1667089162.11771;
UTC_epoch = datetime(1970,1,1,'TimeZone','UTCLeapSeconds')
UTC_epoch + seconds(UtcTime)
Now we get something reasonable for the year 2022, but still in the future compared to your post date, so this is still confusing.
0 Kommentare
Siehe auch
Kategorien
Mehr zu Dates and Time finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!