不使用.ToString更改日期时间格式

时间:2013-02-01 12:04:23

标签: c# datetime

如何转换:

2-1-2013 0:00:00

到此:

2/1/2013 12:00:00 AM

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

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

如果您想要在Watch窗口中看到,请记住它使用简单的DateTime.ToString(..).和您的应用程序的默认文化。

答案 2 :(得分:1)

正如Jon已经提到的,DataTime没有固有的格式,它只有一个值。字符串有一种格式。因此,您需要DateTime.ToStringString.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指示符(如德国所示)。

答案 3 :(得分:0)

让我回答你的问题,提出另一个问题:

如何转换此蛋糕:

Ingredients = Eggs, Sugar, Flour

到此:

Ingredients: Eggs, Saccharine, Flour

答案是:他们甚至不是蛋糕。它们只是蛋糕的文本表示,其成分的文本表示为EggsSugar/SaccharineFlour。因此,除非先获得文本表示,否则无法更改蛋糕的文本表示。

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