在winform C#中更改DATETIME属性的格式

时间:2012-02-13 23:20:06

标签: c# winforms datetime datetime-format

这段代码出了什么问题?

Client c = new Client();
string format = "yyyy/MM/dd HH:mm:ss";
string dateAdded = now.ToString(format);
c.RegistrationDate = DateTime.Parse(dateAdded);

c.RegistrationDate是客户端类中的dateTime对象,我希望它插入到我的数据库中。

然而,它并没有将怪胎日期转换为我的mysql数据库中的格式。它总是说字符串格式不正确。我做错了什么????我应该将我的注册日期转换为字符串???感谢

**编辑:对不起我忘了提。 “now”是now = DateTime.Now;它获取日期和时间的当前时间。

3 个答案:

答案 0 :(得分:3)

DateTime并非拥有格式 - 它只是日期/时间。 (不管它是当地时间,UTC还是其他什么都是另一回事,请注意。)

首先,你不应该像往常一样转换文本:这只是一个麻烦的方法。只需使用:

c.RegistrationDate = now;

...执行你需要的任何舍入。

您尚未展示如何将值插入数据库。如果您在SQL语句中直接包含的值,那就可以解释它。您应该使用参数化SQL语句并直接在参数中传递值 - 无需转换。

如果您已经这样做了,请向我们展示您尝试用于插入数据的代码,我们会看到我们可以做些什么。有关示例,请参阅documentation

答案 1 :(得分:0)

我认为c#代码没有任何问题,除非我认为你必须这样做

string dateAdded = DateTime.Now.ToString(format);

否则我不确定'现在'是什么。

答案 2 :(得分:0)

您可能遇到文化问题。您可以尝试使用ParseExact,如下所述:

http://msdn.microsoft.com/en-us/library/1k1skd40.aspx

  

因为Parse(String)方法试图解析字符串   使用格式规则表示日期和时间   当前的文化,试图解析不同的特定字符串   文化可能会失败或返回不同的结果。如果具体的话   日期和时间格式将在不同的语言环境中解析,使用   DateTime.Parse(String,IFormatProvider)方法或其中一个重载   ParseExact方法并提供格式说明符。