我需要将传入的字符串与来自 DS1307 RTC 模块的日期和时间进行比较。如果达到字符串的特定时间,我将触发一个事件。
我试过使用转换为整数,但它不起作用。
String now_int = rtc.now();
错误说conversion from DateTime to non-scalar type String is requested
如何将日期时间与字符串进行比较?
我需要将传入的字符串与来自 DS1307 RTC 模块的日期和时间进行比较。如果达到字符串的特定时间,我将触发一个事件。
我试过使用转换为整数,但它不起作用。
String now_int = rtc.now();
错误说conversion from DateTime to non-scalar type String is requested
如何将日期时间与字符串进行比较?
您可以使用sprintf和strcmp的组合来实现您描述的行为,例如类似于此
// 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
}
或者您根据您在arduino stackexchange 中描述的格式转换您的 rtc.now() DateTime 。