เมธอด DateTime.ToString() รองรับรูปแบบการแสดงปี (Year format) หลายแบบผ่าน Format String ทำให้สามารถแสดงปีเป็น 2 หลัก 3 หลัก 4 หลัก หรือมากกว่านั้นได้
รูปแบบปีที่รองรับ
| Format String | ชื่อ | ตัวอย่าง (ปี 2024) | คำอธิบาย |
yy | 2-digit year | 24 | ปี 2 หลักสุดท้าย |
yyy | 3-digit year | 2024 | ปี 3 หลักขึ้นไป (ไม่ตัดศูนย์นำหน้า) |
yyyy | 4-digit year | 2024 | ปี 4 หลัก (มาตรฐาน) |
yyyyy | 5-digit year | 02024 | ปี 5 หลัก (มีศูนย์นำหน้า) |
โค้ดตัวอย่างสมบูรณ์
using System;
public class Demo
{
public static void Main()
{
DateTime dt = DateTime.Now;
Console.WriteLine($"วันนี้: {DateTime.Today:d}");
Console.WriteLine("การแสดงปีในรูปแบบต่างๆ:");
Console.WriteLine($" yy : {dt.ToString("yy")}"); // 2 หลัก
Console.WriteLine($" yyy : {dt.ToString("yyy")}"); // 3 หลักขึ้นไป
Console.WriteLine($" yyyy : {dt.ToString("yyyy")}"); // 4 หลัก (มาตรฐาน)
Console.WriteLine($" yyyyy: {dt.ToString("yyyyy")}"); // 5 หลัก
// รูปแบบวันที่ไทยที่นิยม
Console.WriteLine("\n--- รูปแบบวันที่ไทย ---");
Console.WriteLine($"วันที่เต็ม: {dt.ToString("dd/MM/yyyy")}"); // 31/12/2024
Console.WriteLine($"วันที่ไทย: {dt.ToString("d MMMM yyyy", new System.Globalization.CultureInfo("th-TH"))}");
Console.WriteLine($"ปีพุทธศักราช: {dt.ToString("yyyy", new System.Globalization.CultureInfo("th-TH"))}"); // 2567
// การใช้งานจริง
Console.WriteLine("\n--- การใช้งานจริง ---");
string shortDate = dt.ToString("yyMMdd"); // 241231 - ใช้สำหรับชื่อไฟล์
string logFormat = dt.ToString("yyyy-MM-dd HH:mm:ss"); // 2024-12-31 23:59:59 - Log file
Console.WriteLine($"ชื่อไฟล์วันที่: {shortDate}");
Console.WriteLine($"Log timestamp: {logFormat}");
}
}
ผลลัพธ์ (สมมติวันนี้ 31 ธันวาคม 2024)
วันนี้: 31/12/2024
การแสดงปีในรูปแบบต่างๆ:
yy : 24
yyy : 2024
yyyy : 2024
yyyyy: 02024
--- รูปแบบวันที่ไทย ---
วันที่เต็ม: 31/12/2024
วันที่ไทย: 31 ธันวาคม 2567
ปีพุทธศักราช: 2567
--- การใช้งานจริง ---
ชื่อไฟล์วันที่: 241231
Log timestamp: 2024-12-31 23:59:59
รูปแบบวันที่/เวลาที่นิยมใช้
| รูปแบบ | ตัวอย่าง | ใช้สำหรับ |
yyyy-MM-dd2024-12-31 | ISO 8601, Database, API |
dd/MM/yyyy | 31/12/2024 | ไทย, ยุโรป |
MM/dd/yyyy | 12/31/2024 | สหรัฐอเมริกา |
yyyyMMdd | 20241231 | ชื่อไฟล์, Sorting |
yyyy-MM-ddTHH:mm:ss | 2024-12-31T23:59:59 | ISO 8601 DateTime |
dd MMM yyyy | 31 ธ.ค. 2024 | รายงาน, UI |
การใช้งานกับ CultureInfo
var thai = new System.Globalization.CultureInfo("th-TH");
var us = new System.Globalization.CultureInfo("en-US");
DateTime dt = new DateTime(2024, 12, 31);
Console.WriteLine(dt.ToString("d", thai)); // 31/12/2567 (ปีพุทธศักราช)
Console.WriteLine(dt.ToString("d", us)); // 12/31/2024 (ปีคริสต์ศักราช)
ข้อควรระวัง
yy อาจก่อให้เกิดปัญหา Y2K รุ่นใหม่ - ควรใช้ yyyy สำหรับข้อมูลสำคัญ
- รูปแบบปีขึ้นอยู่กับ
Calendar ของ CultureInfo (ไทยใช้พุทธศักราช)
- ใช้
InvariantCulture สำหรับข้อมูลที่ต้อง Parse กลับ (Log, Config, API)