我有一个日期格式的文本框dd/MM/yyyy,我想将其转换yyyy-MM-dd为将其插入数据库的格式.
我试过了
Convert.DateTime/DateTime.ParseExact
Run Code Online (Sandbox Code Playgroud)
但它总是给我系统的默认日期格式.
我不知道在C#中转换它的任何其他方法...
Jon*_*eet 13
你不应该将其转换为字符串都将其插入到你的数据库.(我对推荐这种方法的所有其他答案感到惊讶.)
相反,您应该使用参数化SQL,并将参数的DateTime值设置为您已获得的值.您应该使用参数化的SQL 无论如何,以避免SQL注入攻击,并保持你的代码和数据分开.避免不必要的字符串转换(每个都是潜在的痛点)的事实是另一个好处.
你的问题的这一部分表明你有一个基本的误解:
我使用Convert.DateTime/DateTime.ParseExact它总是给我系统日期格式.
那些方法会给你一个DateTime.一个DateTime不具有的格式.当你打电话给ToString你时,只需获得当前文化的默认格式,但这不是价值的一部分.就像数字一样 - 16和0x10是相同的数字,并且int不知道它是十进制还是十六进制; 这是一个毫无意义的概念.
所有这些都超出了你的直接问题,试图在类型方面保持你的代码库清洁.你应该将数据保存在其最适当的形式尽可能多的时间,因为你可能会,并确保您了解在所有点正是该数据的装置.用于通信的其他类型(例如字符串)的转换应该仅在API /系统边界处进行,并且如果可能的话甚至可以避免(例如,在这种情况下使用参数化的SQL).