Een datum converteren naar een string

Arduino:
Een datum converteren naar een string

Hoe:

Hier is een eenvoudige voorbeeld van het converteren van een datum naar een tekenreeks op Arduino:

#include <RTClib.h>

RTC_DS3231 rtc;

void setup() {
  Serial.begin(9600);
  if (!rtc.begin()) {
    Serial.println("Kon RTC niet vinden");
    while (1);
  }
  
  DateTime now = rtc.now();
  char dateString[11]; // Genoeg ruimte voor "DD/MM/JJJJ"

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

void loop() {
  // Niet nodig om de conversie te herhalen.
}

Voorbeelduitvoer:

23/03/2023

Diepere Duik

Historisch gezien is tijdrepresentatie een complex aspect van programmeren geweest vanwege verschillende formaten en tijdzones. Arduino’s tijdgerelateerde functies nemen de complexiteit op zich, waardoor we ons kunnen concentreren op het begrijpen van de tijdgegevens.

Hoewel we de RTClib bibliotheek gebruikt hebben, bieden alternatieven zoals de TimeLib.h vergelijkbare functionaliteit. Het kiezen van een bibliotheek hangt af van voorkeur en specifieke functies, zoals ingebouwde tijdzoneafhandeling.

De sleutelfunctie sprintf die hier gebruikt wordt, formatteert de gegevens in een tekenreeks. Deze is gebaseerd op de standaard C bibliotheekfunctie, die robuust is maar geheugenintensief kan zijn voor complex gebruik. Een lichter, meer basisalternatief zou snprintf zijn, dat ervoor zorgt dat je de grootte van je buffer niet overschrijdt en veiliger is tegen bufferoverlopen.

Zie Ook