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库管理器安装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