Есть много подобных вопросов, но я не нашел ни одного конкретного для выходных данных GPS, которые я получаю. Данные моего GPS представлены в десятичной форме:
Неделя GPS: 2145 и Время GPS: 330374.741371 (в руководстве говорится, что это двойное число, представляющее время недели в секундах)
Я пытаюсь преобразовать это время в удобочитаемое время UTC. Я использую старый С++ 14, а не 20, поэтому я не могу просто использовать функцию to_utc(), я не думаю. Меня больше всего смущает десятичная дробь. На этом веб-сайте: https://www.labsat.co.uk/index.php/en/gps-time-calculator похоже, что данные представляют собой secondOfTheWeek.secondsOfTheDay. Я не уверен, как преобразовать это время в UTC...
Я полагаю, что эти выходные данные представляют собой количество секунд, прошедших со времени эпохи GPS в полночь 6 января 1980 года. И я знаю, что они не учитывают високосные секунды, поэтому это также необходимо учитывать. Если бы у меня было какое-то руководство о том, как начать переводить это во время UTC, я думаю, я мог бы понять остальное, но я не совсем уверен, с чего начать...
В конце концов я хочу преобразовать время в строку, чтобы установить систему ОС с этим временем, используя date -s 16 AUG 2021 13:51:00 или что-то в этом роде. Но сначала мне просто нужно преобразовать это время GPS.