2010-11-21 28 views
6

Xin chào Tôi có một định dạng ngày không bình thường mà tôi muốn phân tích vào một đối tượng DateTimeLàm thế nào để phân tích một chuỗi ngày bất thường

string date ="20101121"; // 2010-11-21 
string time ="13:11:41: //HH:mm:ss 

Tôi muốn sử dụng DateTime.Tryparse() nhưng tôi không thể dường như để bắt đầu về vấn đề này .

Cảm ơn bạn đã được trợ giúp.

+0

Ngày tháng có cùng số ký tự, ý tôi là, tháng và ngày là allwa ys 2 chữ số dài? – SubniC

Trả lời

9
string date ="20101121"; // 2010-11-21 
string time ="13:11:41"; //HH:mm:ss 

DateTime value; 

if (DateTime.TryParseExact(
    date + time, 
    "yyyyMMddHH':'mm':'ss", 
    new CultureInfo("en-US"), 
    System.Globalization.DateTimeStyles.None, 
    out value)) 
{ 
    Console.Write(value.ToString()); 
} 
else 
{ 
    Console.Write("Date parse failed!"); 
} 

Edit: Wrapped token thời gian tách trong dấu nháy đơn theo bình luận của Frédéric

+3

hãy xem xét ký tự ':' trong chuỗi định dạng ngày/giờ: đó là [dấu phân cách thời gian] (http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx) và nó có thể làm bạn ngạc nhiên, ví dụ: bằng cách giải quyết ký tự '.' bằng ngôn ngữ Ý. Bạn có thể muốn quấn nó bên trong dấu nháy đơn để thoát khỏi nó và tránh rắc rối sau này :) –

3

DateTime.TryParseExact()

5

Bạn có thể sử dụng phương pháp DateTime.TryParseExact() tĩnh với một custom format:

using System.Globalization; 

string date = "20101121"; // 2010-11-21 
string time = "13:11:41"; // HH:mm:ss 

DateTime convertedDateTime; 
bool conversionSucceeded = DateTime.TryParseExact(date + time, 
    "yyyyMMddHH':'mm':'ss", CultureInfo.InvariantCulture, 
    DateTimeStyles.None, out convertedDateTime); 
Các vấn đề liên quan