C# 为什么日期时间dd/MM/yyyy不更改为yyyy-MM-dd?

C# 为什么日期时间dd/MM/yyyy不更改为yyyy-MM-dd?,c#,datetime,C#,Datetime,我正在尝试将日期时间dd/MM/yyyy更改为yyyy-MM-dd,但我做不到,日期时间没有更改,我不知道为什么会发生这种情况 我怎么能这样做 尝试 DateTime d1 = g.app_data ?? DateTime.Now.Date; // 2/19/2020 string _dtFormat = d1.ToString("yyyy-MM-dd"); //2020-02-19 DateTime d2 = DateTime.Parse(_dtFormat); //conver

我正在尝试将日期时间
dd/MM/yyyy
更改为
yyyy-MM-dd
,但我做不到,日期时间没有更改,我不知道为什么会发生这种情况

我怎么能这样做

尝试

DateTime d1 = g.app_data ?? DateTime.Now.Date; // 2/19/2020
string _dtFormat = d1.ToString("yyyy-MM-dd");  //2020-02-19
DateTime d2 = DateTime.Parse(_dtFormat);       //converting should be 2020-02-19 as DateTime

//print values 
Debug.WriteLine("Original: " + g.app_data);
Debug.WriteLine("D1: " + d1);
Debug.WriteLine("DT_Format: " + _dtFormat);
Debug.WriteLine("D2: " + d2);
输出

Original: 2/19/2020 12:00:00 AM
D1: 2/19/2020 12:00:00 AM
DT_Format: 2020-02-19
D2: 2/19/2020 12:00:00 AM

您只需执行以下操作:

DateTime date = DateTime.Now.Date;
Console.WriteLine(date.ToString("yyyy-MM-dd"));

DateTime
没有格式(您在“监视”窗口中看到的是格式化的字符串表示)。当您重新解析它时,它又是一个
DateTime
。输入格式已丢失。
DateTime
是一个数字,就这么简单,将其转换为字符串并返回所有您喜欢的内容,它仍然是一个数字和一个数字,没有格式,内部存储方式如下
private UInt64 dateData如果需要格式,请在将其转换为字符串--Debug.WriteLine(“D2:+D2”)`表示以默认的
DateTime
格式写入
d2
。DateTime格式仅在转换为字符串时相关。你不能改变它的存储方式。这就好比您可以将十进制值0.12345更改为.12,因为您将其格式化为
.ToString(.00”)这是否回答了您的问题?这样我知道,但正如我在这篇文章中所问的,我需要它将日期时间本身更改为
yyyy-MM-dd
,而不是字符串格式。正如所有评论所述,你不能这样做。