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 ที่ระดับสูงขึ้นอาจต้องปรับตัวเข้ากับลักษณะระดับต่ำนี้ แต่จะพบว่ามันมีความทรงพลังและหลากหลายอย่างน่าประทับใจสำหรับการจัดรูปแบบวันที่และเวลาสำหรับการใช้งานหลายประเภท