2

我有一个关于字符串转换的问题。我有一个文本框,用户将以这种格式(dd/mm/yy)输入日期。

现在我必须对其进行转换,使其对 MySQL 友好。

到目前为止,这就是我所做的

currentExpDate = txtDateStore.txt; //(i.e 25/12/13)
MessageBox.Show(currentExpDate.ToString()); // for debugging
//DateTime dt = DateTime.Parse(currentExpDate);
DateTime dt = DateTime.ParseExact(
    currentExpDate,
    "dd/MM/yyyy",
    CultureInfo.InvariantCulture);
string mySQLDate = dt.ToString("yyyy-MM-dd");

每当我尝试解析它时,它总是会抛出错误。我得到字符串异常,说字符串格式是一种它无法识别的格式。

如果我尝试使用这种格式 dd/mm/yyyy 输入日期,它就像一个魅力。有什么办法可以解决这个问题吗?

谢谢

4

2 回答 2

6

您应该直接将日期用作 DateTime 以存储在数据库中。没有理由将其转换回字符串。

于 2012-06-25T00:23:04.020 回答
3

我可能在这里遗漏了一些东西,但是DateTime使用“dd/MM/yy”格式创建您的对象,然后DateTime使用“yyyy-MM-dd”将其转换为字符串似乎给了我一个您想要的格式的字符串..

在此处输入图像描述

为了回答您的评论,我刚刚使用了您在问题中发布的代码,并将第一次转换的格式更改为“dd/MM/yy”。

String currentExpDate;
currentExpDate = txtDateStore.Text; //(i.e 25/12/13) 
MessageBox.Show(currentExpDate.ToString()); // for debugging 
//DateTime dt = DateTime.Parse(currentExpDate); 
DateTime dt = DateTime.ParseExact(
    currentExpDate,
    "dd/MM/yy",
    CultureInfo.InvariantCulture);
string mySQLDate = dt.ToString("yyyy-MM-dd");  
于 2012-06-25T02:02:50.990 回答