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

本文关键字:日期 格式 | 更新日期: 2023-09-27 18:04:51

在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

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

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

string australiaCultureString = "en-AU";
CultureInfo australiaCulture = new CultureInfo(australiaCultureString);

阅读澳大利亚文化:

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

To表示调用ToString()时的澳大利亚日期时间

string timeString = time.ToString(australiaCulture);

我不知道你怎么做,例如,这应该如何解析:

08/01/2010

这在美国和AU格式中都是有效的日期,所以除非您给解析器一个额外的提示,否则总是会有歧义。

不,在解析日期字符串时必须知道区域性。

例如,

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

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