Arduino:
文字列から日付をパースする
方法:
サードパーティのライブラリを使用せずに直接行う方法:
#include <Wire.h>
#include <RTClib.h>
void setup() {
Serial.begin(9600);
// YYYY-MM-DD形式の例示日付文字列
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();
// 解析した成分でDateTimeオブジェクトを初期化
DateTime parsedDate(year, month, day);
Serial.print("解析した日付: ");
Serial.print(parsedDate.year(), DEC);
Serial.print("/");
Serial.print(parsedDate.month(), DEC);
Serial.print("/");
Serial.println(parsedDate.day(), DEC);
}
void loop() {}
出力例:
解析した日付: 2023/4/1
サードパーティのライブラリを使用する方法(ArduinoJson を使用し、JSON応答から日付を取得するなど、より複雑な解析シナリオのために):
まず、Arduino Library Managerを通じてArduinoJsonライブラリをインストールします。
#include <ArduinoJson.h>
void setup() {
Serial.begin(9600);
// JSON応答をシミュレート
String jsonResponse = "{\"date\":\"2023-07-19\"}";
StaticJsonDocument<200> doc;
deserializeJson(doc, jsonResponse);
// 日付文字列を抽出
const char* date = doc["date"];
// 以前と同じように文字列から日付を解析
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("JSONから解析した日付: ");
Serial.print(year);
Serial.print("/");
Serial.print(month);
Serial.print("/");
Serial.println(day);
}
void loop() {}
出力例:
JSONから解析した日付: 2023/7/19