Я использую esp32 для двух вещей: для получения времени эпохи NTP в миллисекундах и для чтения времени другой эпохи из базы данных Firebase Realtime, я хочу вычесть их, чтобы получить разницу в миллисекундах, поэтому мне нужно преобразовать их в длинные long (long в Arduino может содержать только 10 цифр, а эпоха миллисекунд - 13 цифр), я попытался преобразовать их в long long с помощью этого кода:
//define users regTime var to save the regTime from firebase
String checkRegTime = "1590518243941"; //assuming it has that value
//a var to save the current epoch in millis time
String epochMillis = "1590569250992"; //let's give it that value
void setup(){
Serial.begin(9600);
}
void loop(){
convertEpoch()
}
void convertEpoch(){
char* p;
checkRegTime = strtoll(checkRegTime.c_str(),&p, 10);
epochMillis = strtoll(epochMillis.c_str(),&p, 10);
Serial.println(checkRegTime);
Serial.println(epochMillis);
}
, но он дает эту ошибку:
conversion from 'long long int' to 'StringSumHelper' is ambiguous
Я пытался использовать time_t для обоих, но не могу найти, как преобразовать строку в time_t (я могу только прочитать переменную checkRegTime
как строку из Firebase)
есть ли способ вычесть их? а как преобразовать строку в длинную в Arduino? так как я пробовал здесь все ответы на С ++, и, похоже, он не работает с Arduino.