Định dạng kiểu DateTime C#


Nguồn: http://www.csharp-examples.net

Trong bài này hướng dẫn cách định dạng kiểu ngày tháng trong C#, sử dụng hàm String.Format.  Tất cả các kiểu định dạng cũng có thể dùng DateTime.ToString.

Tùy chỉnh định dạng ngày tháng

Có các định dạng tùy chỉnh sau đây: y (năm), M (tháng), d (ngày), h (giờ 12), H (giờ 24), m(phút), s (thứ hai), f (phần nhỏ của giây), F (phần nhỏ của giây, không bao gồm số 0 sau cùng), t (PM hoặc AM) và z (múi giờ).

Những ví dụ sau minh họa cụ thể giá trị đầu ra của các kiểu định dạng.

/Khởi tạo thời gian date time 2008-03-09 16:05:07.123
DateTime dt = new DateTime(2008, 3, 9, 16, 5, 7, 123);
String.Format("{0:y yy yyy yyyy}", dt);  // "8 08 008 2008"   năm
String.Format("{0:M MM MMM MMMM}", dt);  // "3 03 Mar March"  tháng
String.Format("{0:d dd ddd dddd}", dt);  // "9 09 Sun Sunday" ngày
String.Format("{0:h hh H HH}",     dt);  // "4 04 16 16"      giờ 12/24
String.Format("{0:m mm}",          dt);  // "5 05"            phút
String.Format("{0:s ss}",          dt);  // "7 07"            giây
String.Format("{0:f ff fff ffff}", dt);  // "1 12 123 1230"   phần nhỏ của giây
String.Format("{0:F FF FFF FFFF}", dt);  // "1 12 123 123"    phần nhỏ của giây(không có số 0)
String.Format("{0:t tt}",          dt);  // "P PM"            A.M. or P.M.
String.Format("{0:z zz zzz}",      dt);  // "-6 -06 -06:00"   muối giờ

Sử dụng dấu phân cách”/” , “:”. Các ký tư này sẻ được chèn vào kết quả đầu ra, để xác đinh thời gian.

//Dấu phân cách trong định dạng của người Đức là "." (chuyển "/" =>".")
String.Format("{0:d/M/yyyy HH:mm:ss}", dt); // "9/3/2008 16:05:07" - english (en-US)
String.Format("{0:d/M/yyyy HH:mm:ss}", dt); // "9.3.2008 16:05:07" - german (de-DE)

//Dưới đây là một vài ví dụ về tùy chỉnh định dạng kiểu DateTime
//Định dạng tháng/ngày/năm với ký tự "0" và không có ký tự "0"
String.Format("{0:M/d/yyyy}", dt);            // "3/9/2008"
String.Format("{0:MM/dd/yyyy}", dt);          // "03/09/2008"

//Lấy tên của ngày/tháng
String.Format("{0:ddd, MMM d, yyyy}", dt);    // "Sun, Mar 9, 2008"
String.Format("{0:dddd, MMMM d, yyyy}", dt);  // "Sunday, March 9, 2008"

//Lấy năm với 2, 4 ký tự
String.Format("{0:MM/dd/yy}", dt);            // "03/09/08"
String.Format("{0:MM/dd/yyyy}", dt); // "03/09/2008"

Định dạng Datetime với các kiểu mẫu được định sẳn.
Trong DateTimeFormatInfo có các kiểu mẫu định sẳn cho các culture hiện hành. Ví dụ ShortTimePattern định dạng h:mm tt cho en-US culture và định dạng HH:mm cho de-DE culture.
Bảng sau cho thấy các kiểu mẫu định sẳn trong DateTimeFormatInfo đươc định theo en-US culture. Cột đầu tiên chỉ ra các kiểu mẫu được định sẳn.

Kiểu mẫu DateTimeFormatInfo Giá trị định sẳn (en-US culture)
t ShortTimePattern h:mm tt
d ShortDatePattern M/d/yyyy
T LongTimePattern h:mm:ss tt
D LongDatePattern dddd, MMMM dd, yyyy
f (combination of D and t) dddd, MMMM dd, yyyy h:mm tt
F FullDateTimePattern dddd, MMMM dd, yyyy h:mm:ss tt
g (combination of d and t) M/d/yyyy h:mm tt
G (combination of d and T) M/d/yyyy h:mm:ss tt
mM MonthDayPattern MMMM dd
yY YearMonthPattern MMMM, yyyy
rR RFC1123Pattern ddd, dd MMM yyyy HH':'mm':'ss 'GMT'(*)
s SortableDateTi­mePattern yyyy'-'MM'-'dd'T'HH':'mm':'ss (*)
u UniversalSorta­bleDateTimePat­tern yyyy'-'MM'-'dd HH':'mm':'ss'Z' (*)
(*) = không phụ thuộc vào culture

Ví dụ sau minh họa cách sử dụng kiểu mẫu định sẳn.

String.Format("{0:t}", dt);  // "4:05 PM"                         ShortTime
String.Format("{0:d}", dt);  // "3/9/2008"                        ShortDate
String.Format("{0:T}", dt);  // "4:05:07 PM"                      LongTime
String.Format("{0:D}", dt);  // "Sunday, March 09, 2008"          LongDate
String.Format("{0:f}", dt);  // "Sunday, March 09, 2008 4:05 PM"  LongDate+ShortTime
String.Format("{0:F}", dt);  // "Sunday, March 09, 2008 4:05:07 PM" FullDateTime
String.Format("{0:g}", dt);  // "3/9/2008 4:05 PM"                ShortDate+ShortTime
String.Format("{0:G}", dt);  // "3/9/2008 4:05:07 PM"             ShortDate+LongTime
String.Format("{0:m}", dt);  // "March 09"                        MonthDay
String.Format("{0:y}", dt);  // "March, 2008"                     YearMonth
String.Format("{0:r}", dt);  // "Sun, 09 Mar 2008 16:05:07 GMT"   RFC1123
String.Format("{0:s}", dt);  // "2008-03-09T16:05:07"             SortableDateTime
String.Format("{0:u}", dt);  // "2008-03-09 16:05:07Z"            UniversalSortableDateTime

Định dạng chuổi từ kiểu Int(C#)
Định dạng chuổi từ kiểu Double(C#)

Advertisements