Преобразование даты в строку

Arduino:
Преобразование даты в строку

Как это сделать:

Вот простой пример преобразования даты в строку на Arduino:

#include <RTClib.h>

RTC_DS3231 rtc;

void setup() {
  Serial.begin(9600);
  if (!rtc.begin()) {
    Serial.println("Не удалось найти RTC");
    while (1);
  }
  
  DateTime now = rtc.now();
  char dateString[11]; // Достаточно места для "DD/MM/YYYY"

  sprintf(dateString, "%02d/%02d/%04d", now.day(), now.month(), now.year());
  Serial.println(dateString);
}

void loop() {
  // Повторное преобразование не требуется.
}

Пример вывода:

23/03/2023

Подробнее

Исторически представление времени было сложным аспектом программирования из-за разных форматов и часовых поясов. Времязависимые функции Arduino берут на себя сложность, позволяя нам сосредоточиться на понимании временных данных.

Хотя мы использовали библиотеку RTClib, альтернативы, такие как TimeLib.h, предлагают аналогичные функции. Выбор зависит от предпочтений и конкретных особенностей, например, встроенной обработки часовых поясов.

Ключевая функция sprintf, использованная здесь, форматирует данные в строку. Она основана на стандартной функции библиотеки C, которая является надежной, но может быть ресурсоемкой для сложного использования. Более легкой и базовой альтернативой была бы snprintf, которая обеспечивает соблюдение размера буфера и безопасность против переполнения буфера.

Смотрите также