Chuyển đổi một ngày thành chuỗi

Arduino:
Chuyển đổi một ngày thành chuỗi

Cách thực hiện:

Dưới đây là một ví dụ đơn giản về cách chuyển đổi ngày thành chuỗi trên Arduino:

#include <RTClib.h>

RTC_DS3231 rtc;

void setup() {
  Serial.begin(9600);
  if (!rtc.begin()) {
    Serial.println("Không tìm thấy RTC");
    while (1);
  }
  
  DateTime now = rtc.now();
  char dateString[11]; // Đủ không gian cho "DD/MM/YYYY"

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

void loop() {
  // Không cần phải lặp lại việc chuyển đổi.
}

Đầu ra mẫu:

23/03/2023

Sâu xa hơn

Lịch sử, việc biểu diễn thời gian đã là một khía cạnh phức tạp của lập trình do có nhiều định dạng và múi giờ khác nhau. Các chức năng liên quan đến thời gian của Arduino đã giải quyết sự phức tạp này, cho phép chúng ta tập trung vào việc làm thế nào để hiểu dữ liệu thời gian.

Dù chúng ta đã sử dụng thư viện RTClib, các lựa chọn thay thế như TimeLib.h cung cấp chức năng tương tự. Việc chọn lựa phụ thuộc vào sở thích cá nhân và các tính năng cụ thể, như xử lý múi giờ tích hợp.

Chức năng quan trọng sprintf được sử dụng ở đây định dạng dữ liệu thành chuỗi. Nó dựa trên hàm của thư viện chuẩn C, rất mạnh mẽ nhưng có thể tốn nhiều bộ nhớ khi sử dụng phức tạp. Một lựa chọn nhẹ nhàng, cơ bản hơn sẽ là snprintf, giúp đảm bảo bạn không vượt quá kích thước bộ đệm và an toàn hơn chống tràn bộ đệm.

Xem thêm