有没有办法正确读取日期时间而不管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
我想要的是能够阅读日期,并将它们全部作为澳大利亚格式的日期处理。
答案 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));
将为您解析美国日期,但不会解析澳大利亚日期(当然,除非两种文化恰好使用相同的日期格式)。