【发布时间】:2012-02-13 23:20:06
【问题描述】:
这段代码有什么问题?
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; 它获取日期和时间的当前时间。
【问题讨论】:
-
你的
now变量是什么类型的?如果它是DateTime,那么为什么要将其转换为string,然后再转换为DateTime和DateTime.Parse()? -
因为我想转换它的格式所以我想我应该先把它转换成一个字符串来改变它的格式和改变它的类型^^。但我失败了……
-
正如 Jon Skeet 已经指出的那样,
DateTime没有具有格式,它只是一个值。如果你想要一个格式化的字符串,那么你想要一个string,而不是DateTime,所以你根本不需要DateTime.Parse()。 -
@DanielPryden:先生,这是否意味着我的客户端类中不应该有 DateTime 对象?我应该将其数据类型更改为字符串吗?谢谢...
-
不一定。如果您使用
DateTime值来构建字符串,那么那个 代码应该使用c.RegistrationDate.ToString(format)。您似乎对 value 和 该值的表示 之间的区别存在根本性的误解。举个简单的例子,数字 42 是一个值,"42"、"forty-two"和"XLII"都是同一值的表示。
标签: c# winforms datetime datetime-format