C# 在不使用.ToString的情况下更改日期时间格式

C# 在不使用.ToString的情况下更改日期时间格式,c#,datetime,C#,Datetime,如何将其转换为: 2-1-2013 0:00:00 为此: 2/1/2013 12:00:00 AM Ingredients: Eggs, Saccharine, Flour 不转换为字符串?或者转换为字符串,但最终结果应该是DateTimeDateTime结构没有格式含义,当您要在某处显示/输出日期时间时,格式变得很重要。因此,您可以使用DateTime.ToString()重载来指定需要输出的excat格式。在我看来,请求没有多大意义,因为格式是数据的一种表示方式,在这种情况下,数据是

如何将其转换为:

2-1-2013 0:00:00
为此:

2/1/2013 12:00:00 AM
Ingredients: Eggs, Saccharine, Flour

不转换为字符串?或者转换为字符串,但最终结果应该是
DateTime

DateTime
结构没有格式含义,当您要在某处显示/输出日期时间时,格式变得很重要。因此,您可以使用
DateTime.ToString()
重载来指定需要输出的excat格式。

在我看来,请求没有多大意义,因为格式是数据的一种表示方式,在这种情况下,数据是通过字符串表示的。您可以将
DateTime
存储到对象中,但可以以不同的方式显示它


如果您对在
Watch
窗口中查看持谨慎态度,请记住它使用简单的
DateTime.ToString(..)
和应用程序的默认区域性。

正如Jon已经提到的那样,
DataTime
没有固有的格式,它只有一个值。字符串有一个格式。因此,您需要
DateTime.ToString
String.Format
来获得所需的结果:

var dt = DateTime.Parse("2-1-2013 0:00:00");
string result = dt.ToString("MM/dd/yyyy h:mm tt", CultureInfo.InvariantCulture);

请注意,我已使用
ToString
传递
CultureInfo.InvariantCulture
,以确保即使在默认情况下不使用AM/PM指示符的文化中(如德国),我也能获得所需的AM/PM指示符。

让我通过问另一个问题来回答您的问题:

如何转换此蛋糕:

Ingredients = Eggs, Sugar, Flour
为此:

2/1/2013 12:00:00 AM
Ingredients: Eggs, Saccharine, Flour
答案是:它们甚至不是蛋糕。它们只是蛋糕的文本表示,其配料的文本表示是
鸡蛋
糖/糖精
面粉
。因此,除非首先获得文本表示,否则不能更改蛋糕的文本表示


还有你的第二个问题:一旦我们有了这个蛋糕的文本表示,就没有办法把它变成一个实际的蛋糕。

A
DateTime
没有格式。目前这个问题毫无意义。您提供的是一对字符串。这没有意义。如果不使用字符串,您就无法更改日期时间的字符串表示形式。您是否试图获得2013年2月1日0:00:00的日期时间?+1,用于在德国编写关于
CultureInfo
:)@SonerGönül的每个答案的
,我很惊讶大多数问题甚至许多答案都忘记了这一事实,提到这个国家只是举个例子。