Konwersja daty na łańcuch znaków

Arduino:
Konwersja daty na łańcuch znaków

How to: (Jak to zrobić:)

Arduino nie ma wbudowanej obsługi dat, ale można użyć biblioteki TimeLib.h. Oto przykład:

#include <TimeLib.h>

void setup() {
  Serial.begin(9600);
  setTime(10, 30, 0, 4, 1, 2021); // godzina 10:30, 4 stycznia 2021
}

void loop() {
  char buffer[20];
  sprintf(buffer, "%02d/%02d/%04d %02d:%02d:%02d", day(), month(), year(), hour(), minute(), second());
  Serial.println(buffer);
  delay(1000); // czeka 1 sekundę
}

Sample output:

04/01/2021 10:30:00

Deep Dive (Szczegóły)

Historia obsługi czasu w Arduino jest mocno związana z ograniczeniami sprzętowymi mikrokontrolerów. Biblioteka TimeLib.h jest nieoficjalnym standardem do zarządzania czasem w Arduino, ale pamiętaj, że do utrzymywania czasu rzeczywistego potrzebny jest zegar RTC (Real Time Clock).

Alternatywą do sprintf jest konkatencja stringów za pomocą operatora +, ale to mniej wydajne i mniej elastyczne. Można też użyć String obiektów, które są bardziej elastyczne, ale mają większy overhead.

Kiedy konwertujesz datę na string, rozważ format – w różnych częściach świata daty przedstawiane są inaczej.

See Also (Zobacz Również)