C# 以yyyy-mm-dd格式保存日期-时间变量

C# 以yyyy-mm-dd格式保存日期-时间变量,c#,datetime,C#,Datetime,我想以yyyy-mm-dd格式保存我的日期。无论我在Stack Overflow或Google上看到什么帖子,我都发现它们的最终结果是字符串,但我希望我的最终结果是DateTime类型的变量,并且应该是yyyy-mm-dd格式 string dateString = DateTime.Now.ToString("yyyy-mm-dd"); Console.WriteLine(dateString); // here I am getting as what i want in yyyy-mm-d

我想以
yyyy-mm-dd
格式保存我的
日期。无论我在Stack Overflow或Google上看到什么帖子,我都发现它们的最终结果是字符串,但我希望我的最终结果是
DateTime
类型的变量,并且应该是
yyyy-mm-dd
格式

string dateString = DateTime.Now.ToString("yyyy-mm-dd");
Console.WriteLine(dateString); // here I am getting as what i want in yyyy-mm-dd format
DateTime newdate = Convert.ToDateTime(dateString);
Console.WriteLine(newdate); // but here again it chnages to the normal date format.
任何“格式”只有在将
DateTime
转换为
String
时才有意义

DateTime
本身有自己的内部表示,并且没有您可以看到或更改的“格式”

更新


如果只想获取日期部分而不是时间,可以使用
DateTime.date
属性。另外,如果您不需要时间部分-您可以将当前日期作为
DateTime.Today
而不是
DateTime.Now
DateTime
变量没有格式-将任何格式应用于
DateTime
的唯一方法是将其转换为字符串。当您将
newDate
传递到
Console.WriteLine
中时,
Console.WriteLine
在引擎盖下调用
.ToString()
,在有权传递格式的地方执行转换。


Date对象将在内部表示为long。

它将是一个字符串。
DateTime
对象本身没有格式。只能在将其转换为字符串时对其进行格式化。DateTime没有格式。如果需要格式化字符串,则需要格式化字符串。@SandeepKushwah如果必须在数据库中以该格式保存(老实说,我不认为有理由,因为所有数据库都有自己的结构化日期时间类型),则必须将其另存为格式化字符串,而不是作为
DateTime
对象。@Sandeep:每个数据库都有没有格式的DateTime结构。除非数据库中的字段是字符串,其中包含格式化字符串。因此,不必对C#DateTime进行格式化以适应datase列,除非该列是字符串。您是如何将日期时间值放入数据库的?你使用哪种代码?因为如果您使用的是SQL,并且您将值存储在SQL字符串中,那么您仍然在将值转换为字符串。如果您提到
DateTime
有一个属性;,您的答案将更有帮助。)@TimSchmelter很合理,谢谢你。看起来OP只需要日期部分。请注意,
.date
并没有完全删除时间部分,只获取相对于给定日期午夜的日期,因此转换格式仍然很重要