Bài viết được sự cho phép của tác giả Nguyễn Thảo
Xin chào các bạn, bài viết hôm nay mình sẽ hướng dẫn các bạn cách định dạng Ngày tháng và Thời gian trên Windows và Ứng dụng trong lập trình C#, Winform.
[C#] Set config shortDate and Short Time Windows
Khi các bạn viết ứng dụng winform hay ứng dụng nào của windows, thì mặc định các control ngày tháng hay thời gian, sẽ mặc định sẽ lấy format cấu hình của máy tính.
Cấu hình DateTime Format ở Windows của mình:
Theo hình trên, thì người sử dụng cài đặt mặc định Short Date Format là: MM/dd/yyyy
Thì khi chúng ta chạy ứng dụng của mình thì các control cũng format theo định dạng đó, như hình bên dưới đây:
Các bạn xem hình ảnh trên sẽ thấy thay vì hiển thị ngày 03/12/2020 => nó lại đi hiển thị là 12/03/2020.
Nếu mặc định người dùng biết chỉnh định dạng format ngày tháng lại thì đơn giản không sao.
Nhưng mong muốn của mình là khi chạy ứng dụng của mình sẽ luôn thể hiện ở định dạng format chuẩn Việt Nam dd/MM/yyyy.
Dưới đây mình sẽ có ba cách thực hiện như sau:
Cách 1: Chỉnh Regedit của Windows về định dạng mong muốn của mình
Tuy nhiên, khi các bạn set theo Regedit bằng cách này, thì ngày tháng dưới Thanh Taskbar sẽ không thay đổi liền.
Mà nó chỉ thay đổi như số phút thời gian nhảy nó mới cập nhật lại định dạng.
Dưới đây là kính thưa các loại định dạng ngày tháng.
1) MM/dd/yyyy 08/22/2006
2) dddd, dd MMMM yyyy Tuesday, 22 August 2006
3) dddd, dd MMMM yyyy HH:mm Tuesday, 22 August 2006 06:30
4) dddd, dd MMMM yyyy hh:mm tt Tuesday, 22 August 2006 06:30 AM
5) dddd, dd MMMM yyyy H:mm Tuesday, 22 August 2006 6:30
6) dddd, dd MMMM yyyy h:mm tt Tuesday, 22 August 2006 6:30 AM
7) dddd, dd MMMM yyyy HH:mm:ss Tuesday, 22 August 2006 06:30:07
8) MM/dd/yyyy HH:mm 08/22/2006 06:30
9) MM/dd/yyyy hh:mm tt 08/22/2006 06:30 AM
10) MM/dd/yyyy H:mm 08/22/2006 6:30
11) MM/dd/yyyy HH:mm:ss 08/22/2006 06:30:07
12) MMMM dd August 22
13) yyyy’-‘MM’-‘dd’T’HH’:’mm’:’ss.fffffffK 2006-08-22T06:30:07.7199222-04:00
14) ddd, dd MMM yyyy HH’:’mm’:’ss ‘GMT’ Tue, 22 Aug 2006 06:30:07 GMT
15) yyyy’-‘MM’-‘dd’T’HH’:’mm’:’ss 2006-08-22T06:30:07
16) HH:mm 06:30
17) hh:mm tt 06:30 AM
18) H:mm 6:30
19) h:mm tt 6:30 AM
20) HH:mm:ss 06:30:07
21) yyyy’-‘MM’-‘dd HH’:’mm’:’ss’Z’ 2006-08-22 06:30:07Z
22) dddd, dd MMMM yyyy HH:mm:ss Tuesday, 22 August 2006 06:30:07
23) yyyy MMMM 2006 August
Cách 2: Mình sẽ sử dụng hàm API 32 Windows để thực hiện thay đổi định dạng ngày tháng và thời gian.
Cách này khi các bạn thay đổi thì định dạng ngày tháng thời gian trong Windows sẽ thay đổi ngay lập tức.
+ Cấu hình ShortDate ta viết như sau:
+ Cấu hình cho ShortTime:
Cái này là mình định dạng theo chuẩn format về 24h.
Kết quả chạy như hình ảnh bên dưới đây:
Tuy nhiên trong ứng dụng, chúng ta nên thực hiện theo cách thứ 3 ở bên dưới đây:
Cách 3: Cài đặt ngày tháng và thời gian mặc định của ứng dụng khi chạy Current Thread
Thay vì chúng ta đi chỉnh định dạng ngày của người sử dụng, thì không hay, nhiều lúc người dùng vẫn mong muốn định dạng máy tính của họ là MM/dd/yyyy.
Hay bất kỳ định dạng nào. Tuy nhiên, chúng ta làm sao để khi mở ứng dụng của mình lên chạy đều thể hiện ở định dạng dd/MM/yyyy thì chúng ta sẽ sử dụng cách dưới đây nhé.
Các bạn cấu hình trực tiếp ở file Program.cs
nhé như code bên dưới đây.
Thanks for watching!
Bài viết gốc được đăng tải tại laptrinhvb.net
Có thể bạn quan tâm:
- Microsoft trình làng Windows Terminal – Ứng dụng dòng lệnh mới cho Windows
- Định dạng ngày tháng bằng Intl.DateTimeFormat
- Bài học từ việc rút ngắn thời gian xây dựng ứng dụng xuống chỉ còn ¼
Xem thêm Tuyển dụng Winform hấp dẫn trên TopDev