2011-07-28 155 views

Trả lời

9

Ngày chính họ không định dạng vốn có. Bạn có thể phân tích một chuỗi thành một DateTime bằng cách phân tích nó với định dạng dd/MM/yyyy và sau đó chuyển đổi chúng thành một chuỗi sử dụng yyyyMMdd định dạng:

DateTime date = DateTime.ParseExact(text, "dd/MM/yyyy", 
            CultureInfo.InvariantCulture); 

string reformatted = date.ToString("yyyyMMdd", CultureInfo.InvariantCulture); 

Hoặc trong VB:

Dim date as DateTime = DateTime.ParseExact(text, "dd/MM/yyyy", CultureInfo.InvariantCulture) 
Dim reformatted as String = date.ToString("yyyyMMdd", CultureInfo.InvariantCulture) 

(Và chắc chắn rằng bạn có một nhập khẩu cho System.Globalization.)

Tuy nhiên, lý tưởng bạn nên giữ nó như là một DateTime (hoặc tương tự) càng lâu càng tốt.

+0

Jon, Chỉ cần tò mò về thế này. Tại sao anh ta không thể sử dụng phương thức 'String.Format'? – reggie

+1

@reggie: Đối với dòng thứ hai? Anh ấy có thể, nhưng nó sẽ làm việc nhiều hơn IMO. Tại sao chỉ định một specifier định dạng chuỗi ký tự khi bạn chỉ muốn định dạng một giá trị duy nhất? –

+0

Cảm ơn lời khuyên, dòng thứ hai là những gì tôi đã bỏ lỡ! –

0

Sử dụng phương pháp DateTime.ParseExact để phân tích cú pháp ngày, sau đó sử dụng DateTimeObj.ToString("yyyyMMdd").

DaTeTime.ParseExact

3
CDate(Datetext).ToString("yyyyMMdd") 
+0

Câu trả lời này có thể thất bại tùy thuộc vào văn hóa. Đó là lý do tại sao câu trả lời của Jon tốt hơn câu trả lời này. Ví dụ, làm thế nào sẽ quyết định nếu 10/12/2017 là ngày 10 tháng 12 hoặc ngày 12 tháng 10 mà không có ParseExact? – Nizam

Các vấn đề liên quan