2011-06-09 216 views
2

我将英国日期格式字符串转换为美国格式将其保存到数据库中,但它引发错误“字符串未被识别为有效的日期时间”。字符串未被识别为有效的日期时间

string dateString = "13/06/2011"; 
DateTime dt = DateTime.Parse(dateString); 

我也试过这个,但同样的例外。

DateTime aa = DateTime.ParseExact(dateString, "MM/dd/yyyy", new System.Globalization.CultureInfo("en-GB")); 

请让我知道如何将uk格式的日期字符串转换为我们的日期格式。

谢谢。

+7

由于本月13不存在? – Dykam 2011-06-09 11:10:50

回答

7

您所指定的格式不正确。它应该是dd/MM/yyyy

var dateString = "13/06/2011"; 
var aa = DateTime.ParseExact(dateString, "dd/MM/yyyy", CultureInfo.CurrentCulture); 
+0

这适用于我,但转换后,当我保存并将其转换为英国它时将月份更改为几天和几天到几个月。 in var dateString =“13/06/2011”;它是2011年6月13日保存和撤回后显示2011年6月13日,但它应显示13/06/2011。 – Sami 2011-06-09 11:51:20

+0

我已经解决了这个
var date = dateValue.ToString(“dd/MM/yyyy”); – Sami 2011-06-09 12:12:23

-3

试试这个

DateTime dt = DateTime.Parse(dtString, 
System.Threading.Tread.CurrentThread.CurrentCultur e.DateTimeFormat); 
+0

当前文化不是en-UK时,使用当前线程的文化无助于以en-UK格式解析值。 – dtb 2011-06-09 11:19:53

+0

你是对的,我的意思是向他展示他应该使用CurrentThread.CurrentCulture.DateTimeFormat,而不仅仅是CurrentThread.CurrentCulture,;) – 2011-06-09 11:42:19

3

DateTime.Parse与EN-GB文化工作正常:

string dateString = "13/06/2011"; 

DateTime aa = DateTime.Parse(dateString, new CultureInfo("en-GB")); 
// aa.Day == 13 
// aa.Month == 6 
// aa.Year == 2011 

string result = aa.ToString("d", new CultureInfo("en-US")); 
// result == "6/13/2011" 
+0

这适用于我,但转换后,当我保存它并将其转换为英国它将月份更改为几天和几天到几个月。 in var dateString =“13/06/2011”;它是2011年6月13日保存和撤回后显示2011年6月13日,但它应显示13/06/2011。 – Sami 2011-06-09 11:51:27

+0

我已经解决了这个
var date = dateValue.ToString(“dd/MM/yyyy”); – Sami 2011-06-09 12:11:10

相关问题