C# DateTime.TryParse字符串格式错误

C# DateTime.TryParse字符串格式错误,c#,sql-server,parsing,datetime,C#,Sql Server,Parsing,Datetime,在C#中,我试图对一个字符串字段执行DateTime.TryParse,该字段是从一个数据源获取的,我知道该数据源是“MM/dd/YYYY”格式。e、 g DateTime dt = DateTime.TryParse("01/30/11"); 现在唯一的问题是“dt”的格式不正确,无法存储到我的数据库中,该数据库的DateTime区域设置为“dd/MM/YYYY” 如何将字符串字段正确地解析为dt,然后再解析为DB?处理这个问题的最佳方法是什么?如果我将CurrentThread的全球化设置

在C#中,我试图对一个字符串字段执行DateTime.TryParse,该字段是从一个数据源获取的,我知道该数据源是“MM/dd/YYYY”格式。e、 g

DateTime dt = DateTime.TryParse("01/30/11");
现在唯一的问题是“dt”的格式不正确,无法存储到我的数据库中,该数据库的DateTime区域设置为“dd/MM/YYYY”

如何将字符串字段正确地解析为dt,然后再解析为DB?处理这个问题的最佳方法是什么?如果我将CurrentThread的全球化设置为en US,则dt将采用en US格式,但是在插入DB时,它仍然被错误地存储?:

谢谢


David

尝试使用
TryParseExact

使用以下方法:

如果要将DateTime值转换回字符串,请使用以下代码:

string dtString = string.Format("{0: dd/MM/yyyy}", dt);

我希望您理解,TryParse是由if语句生成的,请参见以下示例

  private void button1_Click_1(object sender, EventArgs e)
    {

        DateTime myData = new DateTime();

        if (DateTime.TryParse(this.textBox1.Text,out myData))
        {
            // your filed db = myData
        }
    }
然后,根据电脑上设置的区域性,在块中输入是否更新数据库字段


再见

MS SQL server不应该真正关心格式是什么。如果你通过的是dt本身,你应该没问题。
dt
完全没有格式。它是一个
DateTime
,没有固有的字符串表示形式。它是如何存储在数据库中的。问题不在于
TryParse
。请阅读此处的评论并为我们提供更多信息…谢谢各位,为了提供更多信息,我认为这与我的机器上的文化没有设置有关???然而,我已经尝试使用系统。全球化,也许我没有设置正确的东西?我从一个DataFeed接收到一个字符串,该字符串应该表示日期,例如,“07/08/2011”(MM/dd/YYYY),但是在我看来,DateTime区域性设置为dd/MM/YYYY格式,因此即使解析有效,它也混淆了月份和日期。这仍然不起作用,你有例子吗?可能是我设置的文化信息不正确?例如,这不起作用,CultureInfo enUS=new CultureInfo(“en-US”);bool dateValue=DateTime.TryParseExact(“01/30/2011”,“dd/MM/YYYY”,enUS,datetimestyle.None,out dtDateTime)我不确定我是否理解您的代码示例,我的日期不是2011年12月15日,而是2011年12月15日,但我希望它作为2011年12月15日解析为dt???据我所知,您希望将字符串转换为日期时间值,对吗?字符串以“dd/MM/yyyy”格式存储数据,对吗?如果是的话,试试代码,我贴了。您将看到,DateTime值将包含2011年12月15日。是的,我确实希望将字符串转换为DateTime值,但是,我拥有的字符串是“12/15/2011”,我需要将其转换为DateTime,并将“15/12/2011”存储在数据库中感谢您的更新,我不想将DateTime值转换回字符串。我的问题是,我想强制使用dd/MM/YYYY格式的日期时间值读取具有MM/dd/YYYY格式的字符串,并使其正确,了解我提供的字符串是MM/dd/YYYY格式的,并将其转换为日期时间dd/MM/YYYY格式DateTime是一个结构,而不是字符串。因此,结构通常不能有格式。格式用于将此结构表示为字符串。基于此,请告诉我,上面的代码中有什么不起作用。
  private void button1_Click_1(object sender, EventArgs e)
    {

        DateTime myData = new DateTime();

        if (DateTime.TryParse(this.textBox1.Text,out myData))
        {
            // your filed db = myData
        }
    }