DateTime.Parse美国日期格式C#

时间:2011-05-09 14:59:02

标签: c# asp.net datetime

可能是一个简单的问题 -

我正在读取大量文件中的数据。

我的问题是,当我在美国文件中阅读日期时,我会像这样解析它:

DateSold = DateTime.Parse(t.Date)

将字符串t.Date解析为日期格式,但它将美国日期格式化为欧洲日期,例如

如果日期在2011年1月3日的文件中,则为2011年1月3日,即应该是2011年3月1日。

有没有办法做到这一点,以便格式化为欧洲日期?

5 个答案:

答案 0 :(得分:32)

var dt = DateTime.ParseExact(t.Date, "MM/dd/yyyy", CultureInfo.InvariantCulture);

DateTime本身没有格式化,只有当您将其转换为格式相关的字符串时才会格式化。

要使用美国格式查看日期,请将格式传递给ToString方法

string americanFormat = dt.ToString("MM/dd/yyyy");

答案 1 :(得分:17)

如果要从特定于美国格式的文件的文件中解析日期,则只需将美国文化信息传递到解析函数中,如下所示;

var usCulture = "en-US";
var dateValue = DateTime.Parse(dateString, new CultureInfo(usCulture, false));

这样您就可以根据解析所需的不同区域简单地换出文化字符串。此外,您不再需要研究每种文化的特定日期时间格式细微差别,因为.Net将按照您的设计为您解决此问题。

答案 2 :(得分:7)

解析时使用DateTime.ParseExactDateTime.TryParseExact,并在使用ToString格式化时指定格式字符串。

请注意,在解析之后,没有“美国约会”之类的东西。 DateTime值具有格式化概念。

听起来你对Parse部分实际上并没有像格式化部分那样感兴趣,例如

string formatted = dt.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);

...但我建议您明确控制解析格式。

如果您有不同的文件格式,则在阅读每个文件时需要提供不同的格式字符串。您如何格式化数据是一个单独的决定。

答案 3 :(得分:1)

如果您提前知道格式,可以使用美国格式作为格式字符串DateTime.ParseExact

答案 4 :(得分:0)

string formatteddate=DateTime.Now.ToString("d") // output: 11/8/2012    
string formatteddate=DateTime.Now.ToString("D") // output: Monday, November 08, 2012    
string formatteddate=DateTime.Now.ToString("f") // output: Monday, November 08, 2012 3:39 PM    
string formatteddate=DateTime.Now.ToString("g") // output: Monday, November 08, 2012 3:39:46 PM    
string formatteddate=DateTime.Now.ToString("d") // output: 11/8/2012 3:39 PM

这里给出了asp.net中更多日期时间格式。

http://dateformat.blogspot.in/2012/09/date-time-format-in-c-aspnet.html