2011-01-10 6 views
20

Làm thế nào để chuyển đổi định dạng ngày thành DD-MM-YYYY trong C#? Tôi chỉ tìm kiếm định dạng DD-MM-YYYY chứ không phải bất cứ thứ gì khác.Cách chuyển đổi định dạng ngày thành DD-MM-YYYY trong C#

+0

Bạn đang chuyển đổi chuỗi thành chuỗi khác? Bạn có muốn định dạng DateTime dưới dạng chuỗi có định dạng 'DD-MM-YYYY' không? Ngôn ngữ nào: VB, C#, cái gì khác? Vui lòng cung cấp thêm thông tin. – matt

+0

Lưu ý rằng định dạng ToString ("dd-MM-yyyy") phân biệt chữ hoa chữ thường. Nếu bạn sử dụng chữ thường của M, bạn sẽ không nhận được tháng, một cái gì đó tôi đã vấp phải quá nhiều lần để đếm. – DOK

Trả lời

7
string formattedDate = yourDate.ToString("dd-MM-yyyy"); 
+0

Cảm ơn rất nhiều cho responsecannot nhanh chóng nhưng nó không hoạt động .. chuyển đổi từ 'chuỗi' thành 'System.IFormatProvider' lỗi Tôi đang nhận được – saurav2109

42
string formatted = date.ToString("dd-MM-yyyy"); 

sẽ làm điều đó.

Here là tham chiếu tốt cho các định dạng khác nhau.

+0

Cảm ơn bạn đã phản ứng nhanh chóng, nhưng nó không hoạt động ..Bow lỗi tôi đang nhận được .. không thể chuyển đổi từ 'string' sang 'System.IFormatProvider' – saurav2109

+0

Bạn gọi nó như thế nào? Làm chính xác những gì tôi đã viết sẽ hoạt động. Xem MSDN để biết thêm thông tin http://msdn.microsoft.com/en-US/library/zdtaw1bw%28v=VS.100%29.aspx – alexn

+0

Tôi đang chọn ngày bắt đầu và ngày kết thúc từ truy vấn dưới đây sau đó tôi đang sử dụng cho vòng lặp cho tất cả giá trị đã chọn ... Vui lòng xem bên dưới. hrms_job = hrms_job.Append ("SELECT [Mã công việc], [Tên công việc], [Ngày bắt đầu], [Ngày kết thúc] TỪ [hrms_job $]"); – saurav2109

12

Theo một trong những hit tìm kiếm đầu tiên của Google: http://www.csharp-examples.net/string-format-datetime/

// Where 'dt' is the DateTime object... 
String.Format("{0:dd-MM-yyyy}", dt); 
+0

Cảm ơn rất nhiều câu trả lời nhưng điều này không hoạt động, string.format sẽ không cung cấp cho chúng tôi định dạng DD-MM-YYYY, nó sẽ cung cấp định dạng DD/MM/YYYY – saurav2109

4
DateTime dt = DateTime.Now; 

String.Format("{0:dd-MM-yyyy}", dt); 
+0

Cảm ơn rất nhiều vì đã trả lời nhưng điều này không hoạt động, chuỗi .format sẽ không cung cấp cho chúng tôi định dạng DD-MM-YYYY, nó sẽ cung cấp định dạng DD/MM/YYYY – saurav2109

+1

Làm việc cho tôi. Đầu ra là 10-01-2011 – evilone

0

Bạn đã biến ngày bạn được lưu trữ như là một String hoặc một kiểu ngày?

Trong trường hợp này bạn sẽ cần phải làm một cái gì đó giống như

DateTime myDate = null;

DateTime.TryParse(myString,myDate); 

hoặc

Convert.ToDateTime(myString); 

Sau đó bạn có thể gọi ToString ("dd-MM-yyyy") trên của bạn biến ngày

2

Đầu tiên chuyển đổi chuỗi của bạn thành biến DateTime:

DateTime date = DateTime.Parse(your variable); 

Sau đó, chuyển đổi biến này trở lại chuỗi trong dạng đúng:

String dateInString = date.ToString("dd-MM-yyyy"); 
+0

hrms_job = hrms_job.Append ("SELECT [Mã công việc], [Tên công việc], [Ngày bắt đầu], [Ngày kết thúc] TỪ [hrms_job $]"); cho (int iRowCount = 0; iRowCount saurav2109

+0

Dưới đây là mã của tôi, xin lỗi vì làm phiền bạn một lần nữa, nhưng tôi không geeting chính xác những gì tôi muốn .. Sau khi đề nghị của bạn bây giờ tôi nhận được DD-02 -YYYY, có nghĩa là tôi đang nhận được giá trị tháng nhưng không phải tất cả. Xin hãy giúp – saurav2109

+0

Thhanks rất nhiều Mọi người .. Tôi đã nhận được giải pháp..Tôi đã làm DD-MM-YYYY nhưng thực sự nó là dd-MM-yyyy đó là trường hợp nhạy cảm .. Cảm ơn rất nhiều cho tất cả sự hỗ trợ tốt đẹp của bạn – saurav2109

2
DateTime s1 = System.Convert.ToDateTime(textbox.Trim()); 
     DateTime date = (s1); 
     String frmdt = date.ToString("dd-MM-yyyy"); 

sẽ làm việc

9

Dưới đây là phương pháp đơn giản nhất.

Đây là giá trị String: "2012/05/13"

DateTime _date; 
string day = ""; 

_date = DateTime.Parse("5/13/2012"); 
day = _date.ToString("dd-MMM-yyyy"); 

Nó sẽ ra như sau: 13-May-2012

+0

của nó Chính xác là tốt –

0

Tôi chạy vào cùng một vấn đề. 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 ...

0

vấn đề là bạn đang cố gắng để chuyển đổi một chuỗi, vì vậy đầu tiên bạn nên cast biến của bạn cho đến nay và sau đó áp dụng một cái gì đó giống như
string date = variableConvertedToDate.ToString("dd-MM-yyyy")
hoặc
string date = variableConvertedToDate.ToShortDateString() i n kết quả này là dd/MM/yyyy.

1

Ở đây chúng ta đi:

DateTime time = DateTime.Now; 
Console.WriteLine(time.Day + "-" + time.Month + "-" + time.Year); 

TRÌNH! :)

-1
var dateTimeString = "21‎-‎10‎-‎2014‎ ‎15‎:‎40‎:‎30"; 
dateTimeString = Regex.Replace(dateTimeString, @"[^\u0000-\u007F]", string.Empty); 

var inputFormat = "dd-MM-yyyy HH:mm:ss"; 
var outputFormat = "yyyy-MM-dd HH:mm:ss"; 
var dateTime = DateTime.ParseExact(dateTimeString, inputFormat, CultureInfo.InvariantCulture); 
var output = dateTime.ToString(outputFormat); 

Console.WriteLine(output); 

Hãy thử điều này, nó phù hợp với tôi.

0

Từ C# 6.0 trở đi (Visual Studio 2015 và mới hơn), bạn có thể chỉ cần sử dụng một chuỗi suy với định dạng:

var date = new DateTime(2017, 8, 3); 
var formattedDate = $"{date:dd-MM-yyyy}"; 
0

trở inObj == DBNull.Value? "": (Convert.ToDateTime (inObj)) ToString ("MM/dd/yyyy"). ToString();

-1
DateTime dt = DateTime.Now; 

String.Format("{0:dd-MM-yyyy}", dt);