0

我正在尝试制作一个程序,它将日期以 dd/MM/yyyy 的格式存储在数据库中。我用谷歌搜索并看到了相同的结果。我尝试对其进行编码,但它不起作用。输入日期的格式为 dd/MM/yy,使用 datetimepicker 的自定义格式。在稍微操作字符串以删除填充零之后,返回的字符串是 MM/dd/yyyy。

这是我的代码

System.Windows.Forms.MessageBox.Show(Cdate.Text + "CDATE"); //shows dd/MM/yyyy
            string[] datecut = new string[4];

            datecut = Cdate.Text.Split('/');
            DateTime cdate = DateTime.ParseExact(datecut[0].PadLeft(2, '0') + '/' + datecut[1].PadLeft(2, '0') + '/' + datecut[2], "dd/MM/yyyy", null);
            EC.setCDate(cdate.ToShortDateString());
            System.Windows.Forms.MessageBox.Show(cdate.ToShortDateString()); //shows MM/dd/yyyy

            datecut = Cdate.Text.Split('/');
            DateTime date = DateTime.ParseExact(datecut[0].PadLeft(2, '0') + '/' + datecut[1].PadLeft(2, '0') + '/' + datecut[2], "dd/MM/yyyy", null);
            EC.setDate(date.ToShortDateString());
            System.Windows.Forms.MessageBox.Show(date.ToShortDateString());
4

4 回答 4

4

将日期以 dd/MM/yyyy 格式存储在数据库中

不,不,。您的数据库将具有专门用于日期字段的数据类型。你应该使用那种类型。此日期类型不任何人类可读格式存储日期值。它将以紧凑的二进制格式存储日期。为方便起见,您的查询或数据库工具仅向您显示人类可读的格式。

如果您可以举例说明将日期保存到数据库的位置,以及您使用的数据库类型,我们可以向您展示如何在完全不格式化日期的情况下执行此操作。

于 2013-05-24T02:37:52.507 回答
1

你有没有尝试过:

字符串日期 = DateTime.Now.ToString("dd/MM/yyyy");

于 2013-05-24T02:24:03.010 回答
0

听起来您有一个日期选择器,并且您正在尝试使用所选日期的字符串表示形式。如果是这样的话,我不会那样做。日期选择器有一个名为 value 的属性,它是一个代表所选日期的 DateTime 对象,您可以在其中像这样直接传递给您的 EC.setDate 方法。

EC.setDate(dateTimePicker.Value.ToString("dd/MM/yyyy"));
于 2013-05-24T02:32:02.257 回答
0

通常您使用 DateTime.TryParse 方法来解析字符串。( http://msdn.microsoft.com/en-us/library/system.datetime.tryparse.aspx ) 将字符串作为 DateTime 对象后,您可以使用 DateTime.toString() 将其打印回来(http://msdn.microsoft.com/en-us/library/zdtaw1bw.aspx

于 2013-05-24T02:26:25.953 回答