Làm cách nào để định dạng ngày tháng là dd/mm/yyyy
hoặc mm/dd/yy
?ngày định dạng bằng C#
Giống như trong VB format("dd/mm/yy",now)
Làm cách nào để thực hiện điều này trong C#?
Làm cách nào để định dạng ngày tháng là dd/mm/yyyy
hoặc mm/dd/yy
?ngày định dạng bằng C#
Giống như trong VB format("dd/mm/yy",now)
Làm cách nào để thực hiện điều này trong C#?
Nó gần như giống nhau, chỉ cần sử dụng DateTime.ToString()
phương pháp, ví dụ:
DateTime.Now.ToString("dd/MM/yy");
Hoặc:
DateTime dt = GetDate(); // GetDate() returns some date
dt.ToString("dd/MM/yy");
Bên cạnh đó, bạn có thể muốn xem xét sử dụng một trong những ngày/định dạng thời gian định sẵn , ví dụ:
DateTime.Now.ToString("g");
// returns "02/01/2009 9:07 PM" for en-US
// or "01.02.2009 21:07" for de-CH
Đảm bảo định dạng sẽ chính xác, độc lập cài đặt ngôn ngữ hiện tại.
Kiểm tra các trang MSDN sau để biết thêm thông tin
Một số bổ sung, thông tin liên quan:
Nếu bạn muốn hiển thị một ngày trong một ngôn ngữ/văn hóa cụ thể, sau đó là một tình trạng quá tải của các phương pháp ToString()
mà phải mất một IFormatProvider
:
DateTime dt = GetDate();
dt.ToString("g", new CultureInfo("en-US")); // returns "5/26/2009 10:39 PM"
dt.ToString("g", new CultureInfo("de-CH")); // returns "26.05.2009 22:39"
Hoặc cách khác, bạn có thể đặt CultureInfo
của thread hiện hành trước để định dạng ngày:
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
dt.ToString("g"); // returns "5/26/2009 10:39 PM"
Thread.CurrentThread.CurrentCulture = new CultureInfo("de-CH");
dt.ToString("g"); // returns "26.05.2009 22:39"
string.Format("{0:dd/MM/yyyy}", DateTime.Now)
Tra cứu "chuỗi định dạng" trên MSDN để xem tất cả các tùy chọn định dạng.
Sử dụng yy
, yyyy
, M
, MM
, MMM
, MMMM
, d
, dd
, ddd
, dddd
cho thành phần ngày
Sử dụng h
, hh
, H
, HH
, m
, mm
, s
, ss
cho thành phần thời gian trong ngày
Đây là Liên kết MSDN. Có thể giúp người khác. https://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx – Sai
Hãy thử cách này:
String.Format("{0:MM/dd/yyyy}", DateTime.Now); // 01/31/2009
String.Format("{0:dd/MM/yyyy}", DateTime.Now); // 31/01/2009
String.Format("{dd/MM/yyyy}", DateTime.Now); // 31/01/2009
Trong bạn cũng có thể viết
DateTime aDate = new DateTime();
string s = aDate.ToShortDateString();
cho một ký hiệu ngắn
hoặc
DateTime aDate = new DateTime();
string s = aDate.ToLongDateString();
cho một ký hiệu dài như "Sunday, Febuary 1, 2009".
Hoặc xem qua số MSDN để có thể sở hữu .ToString ("???");
Hơn thế nữa, sử dụng chỉ
DateTime.Now.ToString()
hoặc
DateTime.Now.ToString(CultureInfo.CurrentCulture)
sử dụng định dạng người dùng thích.
Tôi đã gặp sự cố tương tự. Những gì tôi cần làm là thêm một tham chiếu ở đầu lớp và thay đổi CultureInfo của luồng hiện đang thực thi.
using System.Threading;
string cultureName = "fr-CA";
Thread.CurrentThread.CurrentCulture = new CultureInfo(cultureName);
DateTime theDate = new DateTime(2015, 11, 06);
theDate.ToString("g");
Console.WriteLine(theDate);
Tất cả bạn phải làm là thay đổi tên văn hóa, ví dụ: "en-US" = Hoa Kỳ "fr-FR" = nói tiếng Pháp Pháp "fr-CA" = tiếng Pháp nói Canada vv ...
tôi nghĩ rằng đây là đơn giản như bạn có thể chuyển đến và đi từ định dạng nào mà không cần bất kỳ sự nhầm lẫn
DateTime.ParseExact(txt.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture).ToString("yyyy/MM/dd"));
nên được chữ in hoa mM cho tháng, mm có nghĩa là phút ... –
tôi khuyến khích bạn làm theo lời khuyên của Martin và đi với các mã được xác định trước, đó là nhận thức về văn hóa. Bạn có thể không cần nó ngay bây giờ nhưng trong tương lai nó có thể làm mọi thứ dễ dàng hơn. –
+1 cho các định dạng được xác định trước –