การแปลงวันที่เป็นสตริง

C:
การแปลงวันที่เป็นสตริง

วิธีการ:

ฟังก์ชัน strftime จากไลบรารี <time.h> มักถูกใช้เพื่อจุดประสงค์นี้ ซึ่งช่วยให้คุณสามารถกำหนดรูปแบบวันที่และเวลาได้หลากหลายวิธีโดยการระบุตัวกำหนดรูปแบบ นี่คือตัวอย่างง่ายๆ:

#include <stdio.h>
#include <time.h>

int main() {
    char dateStr[100];
    time_t now = time(NULL);
    struct tm *ptm = localtime(&now);

    // แปลงวันที่ & เวลาเป็นสตริง (เช่น, "Wed Jun 30 21:49:08 2021")
    strftime(dateStr, sizeof(dateStr), "%a %b %d %H:%M:%S %Y", ptm);
    
    printf("วันที่และเวลาปัจจุบัน: %s\n", dateStr);
    return 0;
}

ผลลัพธ์ตัวอย่างอาจดูเช่นนี้:

วันที่และเวลาปัจจุบัน: Wed Jun 30 21:49:08 2021

คุณสามารถปรับแต่งรูปแบบได้โดยการเปลี่ยนตัวกำหนดรูปแบบที่ส่งไปยัง strftime ตัวอย่างเช่น, หากต้องการได้วันที่ในรูปแบบ YYYY-MM-DD, คุณจะใช้ "%Y-%m-%d".

ศึกษาลึกลงไป

ฟังก์ชัน strftime และไลบรารี <time.h> เป็นส่วนหนึ่งของ C Standard Library, ซึ่งมีต้นกำเนิดมาจากมาตรฐาน ANSI C ดั้งเดิม (C89/C90) แม้ว่าจะเป็นวิธีที่ตรงไปตรงมาและได้รับการสนับสนุนในหลายแพลตฟอร์ม แต่วิธีนี้อาจดูเป็นระดับต่ำและยุ่งยากเมื่อเปรียบเทียบกับภาษาโปรแกรมมิ่งสมัยใหม่ที่มีไลบรารีการจัดการวันที่และเวลาที่มีความสะดวกสบายมากขึ้น

ควรทราบว่า แม้ฟังก์ชันเวลาของ C standard library จะได้รับการสนับสนุนอย่างกว้างขวางและใช้งานได้ค่อนข้างง่าย แต่ก็ขาดคุณสมบัติการจัดการโซนเวลาที่ซับซ้อนและคุณสมบัติการสากลนาม (internationalization) ที่พบในไลบรารีของภาษาใหม่ ๆ หรือไลบรารี C จากบุคคลที่สาม เช่น International Components for Unicode (ICU)

อย่างไรก็ตาม ความสามารถในการปรับแต่งและการรองรับบนแพลตฟอร์มต่าง ๆ อย่างกว้างขวางของฟังก์ชัน strftime ทำให้เป็นเครื่องมือที่เชื่อถือได้และมีประโยชน์สำหรับการแปลงสตริงวันที่ในภาษา C โปรแกรมเมอร์ที่มาจากภาษาที่มีไลบรารี datetime ที่ระดับสูงขึ้นอาจต้องปรับตัวเข้ากับลักษณะระดับต่ำนี้ แต่จะพบว่ามันมีความทรงพลังและหลากหลายอย่างน่าประทับใจสำหรับการจัดรูปแบบวันที่และเวลาสำหรับการใช้งานหลายประเภท