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):
ก่อนอื่น ติดตั้งไลบรารี ArduinoJson ผ่าน Arduino Library Manager.
#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