2012-07-01 35 views
5

Nếu tôi có đề tài chung sql ngày hợp lệ trong C# chuỗi:Chuyển đổi định dạng thời gian SQL chung trong C# (tất cả các biến thể)?

(mỗi ngày có thể được theo thứ tự khác nhau bên trong) ví dụ :

01 feb 2010 
feb 01 2010 
2010 01 feb 
... 
... 

Tôi muốn chuyển đổi ngày chuỗi thành DateTime (C#). (tôi muốn khả năng chuyển đổi mọi định dạng từ danh sách trên)

trong khi phân tích chính xác yêu cầu tôi 3! kết hợp, có giải pháp nào tốt hơn không?

+1

3! chỉ 6 ... Tuy nhiên, bạn chỉ có thể chia nhỏ trên không gian, và tìm hiểu xem mỗi đoạn là alphas, 4 chữ số, hoặc 2 chữ số ... Btw - làm thế nào điều này liên quan đến SQL? –

+0

yeah tôi biết, thats những gì ive strted để làm ... nhưng một lần nữa trước khi tôi tiếp tục, chỉ cần kiểm tra nếu giải pháp khác –

+0

4 chữ số cho năm, 3 ký tự cho tháng, 2 chữ số cho ngày. Bạn có thể sử dụng một regex với các nhóm phù hợp và làm một phân tích cú pháp chính xác. –

Trả lời

2

Tôi nghĩ rằng tôi đã nhận nó ... enter image description here

string[] str = new[] { "01 feb 2010","feb 01 2010","2010 01 feb","2010 feb 01","feb 2010 01" }; 
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US"); 
CultureInfo culture = CultureInfo.CreateSpecificCulture("en-US");      
for (int i = 0; i < str.Length; i++) 
{ 
    DateTime t = DateTime.Parse(str[i], culture); 
    t.Dump(); 
} 
+1

Không cần thiết lập (gây ô nhiễm) 'CurrentThread.CurrentCulture'. 'Phân tích (..., văn hóa)' là đủ. –

+0

@HenkHolterman yep ... mặc dù khi tôi hiển thị nó KHÔNG thay đổi thứ tự (máy tính của tôi là dd/MM/yyyy) vì vậy nó cho tôi thấy: 01/02/2010 .... nhưng chỉ để hiển thị (không liên quan) –

+0

'Dump()' làm gì? – abatishchev

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