Мне нужно сравнить поступающие строки с датой и временем из модуля RTC DS1307. Я собираюсь вызвать событие, если определенное время из строк достигнуто.
Я пытался использовать конвертировать в целое число, но это не работает.
String now_int = rtc.now();
Ошибка говорит conversion from DateTime to non-scalar type String is requested
Как я могу сравнить дату и время со строкой?
Вы можете использовать комбинацию Sprintf а также зЬгстр для достижения вашего описанного поведения, например похожий на этот
// date and time from RTC
DateTime now = rtc.now();
// date and time to compare with - this is provided by you
String datetimeCompare = "1970/01/01 00:00:00";
// this buffer must be big enough for your complete datetime (depending on the format)
char datetimeBuffer[20] = "";
// convert current date and time to your specific format
sprintf(datetimeBuffer, "%04d/%02d/%02d %02d:%02d:%02d", now.year(), now.month(), now.day(), now.hour(), now.minute(), now.second());
// perform the comparison
if(strcmp(datetimeBuffer, datetimeCompare.c_str()) == 0)
{
// datetime strings are the same
}
Или вы конвертируете свой rtc.now () DateTime в соответствии с вашим форматом, как описано на arduino stackexchange.
Других решений пока нет …