2012-01-05 66 views
0

我有以下格式如何将字符串分析为DateTime

Thu Jan 5 19:58:58 2012 

我需要这个字符串解析到System.DateTimeTimeReceived使用可变DateTime.Parse()方法的字符串的日期。

任何人都知道如何解析这个字符串?

+3

你刚刚结束了想要时间部分?你试过什么了? – keyboardP 2012-01-05 15:14:31

+2

请显示一些代码...你有什么试过?什么不起作用? – Yahia 2012-01-05 15:14:56

+0

查看“DateTime.ParseExact”和“TryParseExact”。这里存在很多涉及这两种方法的问题。 – 2012-01-05 15:15:38

回答

4

你可以使用TryParseExact方法,它允许你指定的格式:

var str = "Thu Jan 5 19:58:58 2012"; 
DateTime date; 
if (DateTime.TryParseExact(str, "ddd MMM d HH:mm:ss yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out date)) 
{ 
    // the date was successfully parsed, you could use the date variable here 
    Console.WriteLine("{0:HH:mm:ss dd/MMM/yy}", date); 
} 
0
var reformatted = input.Substring(4, 17) + input.Substring(22); 
return DateTime.Parse(reformatted); 

这应该很好地工作。

1

,如果你看一下ParseExact功能,大约一半有

dateString = "Sun 15 Jun 2008 8:30 AM -06:00"; 
format = "ddd dd MMM yyyy h:mm tt zzz"; 

因此,如果你想切换周围的人,以匹配你想要什么,你会

CultureInfo provider = CultureInfo.InvariantCulture; 

// Parse date and time with custom specifier. 
dateString = "Thu 5 Jan 19:58:58 2012"; 

format = "ddd MMM dd hh:mm:ss yyyy"; 
try { 
    result = DateTime.ParseExact(dateString, format, provider); 
    Console.WriteLine("{0} converts to {1}.", dateString, result.ToString()); 
} 
catch (FormatException) { 
    Console.WriteLine("{0} is not in the correct format.", dateString); 
} 
+0

这是什么提供商? – Sowmya 2012-01-05 15:26:52

+0

哦,没有看到那个参数。修复了代码,它只是CultureInfo.InvariantCulture – 2012-01-05 15:33:11