Доброго времени суток! Столкнулся с проблемой, что при выводе времени, формат не тот что хотелось бы. Библиотека #include "RTClib.h" Выводит "23.7.2016 17:22:57", что не соответствует формату "dd.mm.YYYY hh:mm:ss" Понятно, можно городить, проверять на количество символов и добавлять на перед '0', но это как то...... Есть ли готовая функция для форматирования времени ? Пример кода. Код (C++): #include "RTClib.h" void setup() { Serial.begin(SerialBod); } void loop() { Serial.println((String)now.day() + "." + (String)now.month() + "." + (String)now.year() + " " + (String)now.hour() + ":" + (String)now.minute() + ":" + (String)now.second()); }
Из примера для DS1307: Код (C++): if (RTC.read(tm)) { Serial.print(tmYearToCalendar(tm.Year)); Serial.write('/'); Serial.print(tm.Month); Serial.write('/'); Serial.print(tm.Day); Serial.print(" - "); print2digits(tm.Hour); Serial.write(':'); print2digits(tm.Minute); Serial.write(':'); print2digits(tm.Second); Serial.println(); } void print2digits(int number) { if (number >= 0 && number < 10) { Serial.write('0'); } Serial.print(number); }
Да, разобрался. Код (C++): sprintf (date_time, "%02i.%02i.%04i %02i:%02i:%02i",dt_now.day(), dt_now.month(), dt_now.year(), dt_now.hour(), dt_now.minute(), dt_now.second());