2013-01-16 85 views
1

转换日期时间问题在转换日期时间C#

var date = DateTime.Now; 
txtdate.Text = date.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture); 

当我面临的一个问题,我//需要在以后通过它来作为一个DateTime变量。当我重新转换,给我一个错误)

DateTime dtReconvert =Convert.toDateTime(txtdate.Text); //Error String was not recognized as a valid DateTim 

当我设置日期时间,以类似“2013年1月1日” 并将其转换为日期时间也没有给我任何错误。

+1

http://stackoverflow.com/questions/11009655/convert-datetime-throws-error-string-was-not-recognized-as-a-valid-datetime-for –

+0

我只是好奇!为什么不在整个代码中使用DateTime对象,而不是将DT转换为字符串呢?这需要什么? – CRoshanLG

回答

8

使用DateTime.ParseExact与格式"dd/MM/yyyy"

DateTime dtObject = DateTime.ParseExact(txtdate.Text, 
             "dd/MM/yyyy", 
             CultureInfo.InvariantCulture); 
+1

为什么你可以详细说明如何将日期转换为“01/01/2012”这样的日期,并且当你喜欢“23/01/2012”时,我会告诉我所发布的内容。否则谢谢 – user1884709

+2

@ user1884709,可能是因为你现在的文化支持'MM/dd/yyyy''样式日期,因为'01/01/2014'可以在2012年1月1日,它会被解析。一种自定义的格式,与当前的文化不同,这就是为什么你不能解析它回到日期时间对象。你必须使用自定义格式 – Habib

1

试试这个

DateTime.ParseExact(txtdate.Text, "MM/dd/yyyy", System.Globalization.CultureInfo.InvariantCulture) 

Convert.ToDateTime(txtdate.Text, CultureInfo.InvariantCulture) 

微软已经采用MM/DD/YYYY作为一种文化无关的格式,它是一种模棱两可的格式,这不是我想建立一个拉格朗日的东西电子系统。