Päivämäärän jäsennys merkkijonosta

Arduino:
Päivämäärän jäsennys merkkijonosta

Kuinka tehdä:

Suora lähestymistapa ilman kolmannen osapuolen kirjastoa:

#include <Wire.h>
#include <RTClib.h>

void setup() {
  Serial.begin(9600);
  // Esimerkki päivämäärä merkkijonona YYYY-MM-DD muodossa
  String dateString = "2023-04-01"; 

  int year = dateString.substring(0, 4).toInt();
  int month = dateString.substring(5, 7).toInt();
  int day = dateString.substring(8, 10).toInt();

  // Alusta DateTime-objekti jäsenistä
  DateTime parsedDate(year, month, day);
  
  Serial.print("Jäsennetty Päivämäärä: ");
  Serial.print(parsedDate.year(), DEC);
  Serial.print("/");
  Serial.print(parsedDate.month(), DEC);
  Serial.print("/");
  Serial.println(parsedDate.day(), DEC);
}

void loop() {}

Esimerkki tuloste:

Jäsennetty Päivämäärä: 2023/4/1

Kolmannen osapuolen kirjaston käyttö (ArduinoJson monimutkaisempien jäsentämistilanteiden, kuten päivämäärän saamiseen JSON-vastauksesta, osalta):

Ensin, asenna ArduinoJson-kirjasto Arduinon Kirjastohallinnan kautta.

#include <ArduinoJson.h>

void setup() {
  Serial.begin(9600);

  // Simuloi JSON-vastaus
  String jsonResponse = "{\"date\":\"2023-07-19\"}";
  StaticJsonDocument<200> doc;
  deserializeJson(doc, jsonResponse);

  // Poimi päivämäärä merkkijono
  const char* date = doc["date"];

  // Jäsennä päivämäärä merkkijonosta kuten aiemmin
  int year = String(date).substring(0, 4).toInt();
  int month = String(date).substring(5, 7).toInt();
  int day = String(date).substring(8, 10).toInt();
  
  Serial.print("Jäsennetty Päivämäärä JSONista: ");
  Serial.print(year);
  Serial.print("/");
  Serial.print(month);
  Serial.print("/");
  Serial.println(day);
}

void loop() {}

Esimerkki tuloste:

Jäsennetty Päivämäärä JSONista: 2023/7/19