无论格式如何,都能正确读取日期

时间:2011-08-08 01:47:52

标签: c# datetime

有没有办法正确读取日期时间而不管C#4.0中的日期格式(例如en-AU和en-US)或任何框架版本?

以下是两种不同的日期格式(第一行是澳大利亚格式,底行是美国格式):

Timestamp,Windows User,Computer,Product,Version,Id,User,Action 
5/04/2011 9:14:16 AM,terryg,KETTSAM51,powerfulSoftware,3.0,0,Garry Terry,Lock
5/1/2011 12:38:22 PM,weanern,KETTSAM51,powerfulSoftware,3.0,1,Admin,Lock

我想要的是能够阅读日期,并将它们全部作为澳大利亚格式的日期处理。

3 个答案:

答案 0 :(得分:3)

string australiaCultureString = "en-AU";

CultureInfo australiaCulture = new CultureInfo(australiaCultureString);

读作澳大利亚文化:

DateTime time = DateTime.Parse(inputString, australiaCulture);

表示调用ToString()

时的澳大利亚日期时间
string timeString = time.ToString(australiaCulture);

答案 1 :(得分:3)

我没有看到你能做到的方法,例如,这应该如何解析:

08/01/2010

这是美国和非盟格式的有效日期,因此除非您给解析器一个额外的提示,否则总会有歧义。

答案 2 :(得分:0)

不,您在解析日期字符串时必须了解文化。

例如,

 DateTime.Parse(dateString, new CultureInfo("en-US", false));

将为您解析美国日期,但不会解析澳大利亚日期(当然,除非两种文化恰好使用相同的日期格式)。