How to convert the number of seconds from an epoch into UTC using the datetime function.
Mostra commenti meno recenti
I am struggling to convert the number of seconds from an epoch (1980-01-06 GPS epoch) into UTC using the datetime function. The following commands give me a time of 18-Mar-2021 20:37:31, however in UTC this should be 18-Mar-2021 20:37:13 since I would need to subtract out the number of leap seconds from the total (currently there are 18 leap seconds since the 1980-01-06 GPS epoch).
NoOfSeconds=1300135051;
datetime(NoOfSeconds,'convertfrom','epochtime','Epoch','1980-01-06')
Can the datetime function automatically account for leapseconds in this conversion? I tried using the 'TimeZone','UTCLeapSeconds' name/value pair, but this adds 18 seconds since it assumes the time is already in UTC.
Risposta accettata
Più risposte (2)
Matthew Casiano
il 31 Lug 2021
Sarthak
il 13 Mar 2024
0 voti
function date = gps2utc(g0, g1)
date = datevec(datetime(g0*604800+g1,'convertfrom','epochtime','Epoch','1980-01-06'));
Categorie
Scopri di più su Dates and Time in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!