更改日期时间格式

时间:2014-02-03 10:28:04

标签: c# datetime datetime-format

我的代码如下: -

1) String str = DateTime.Now.ToString("M/d/yyyy")

Output :
str gives "2/3/2014"

2) DateTime dt = Convert.ToDateTime(DateTime.Now.ToString("M/d/yyyy"));

Output :
dt.ToString() gives "2014/02/03 12:00:00 "

但是我无法理解为什么它没有给出“2014/2/3 12:00:00”,即在一天和一个月没有领先的零?

4 个答案:

答案 0 :(得分:5)

DateTime值没有格式,DateTime.ToString()方法以特定格式输出日期时间值。

如果未在ToString()中指定任何参数,则使用general date and time format specifier ('G')格式化输出。 (通常是您在控制面板国际设置中设置的那个)

Console.WriteLine(dt.ToString("M/d/yyyy"));

答案 1 :(得分:3)

System.DateTime的默认格式字符串是System.DateTime.ToString(“G”)中的“G”,其中G是预设之一。来自source

编辑1:

    Globalization.CultureInfo customCulture = new Globalization.CultureInfo("en-US");

    customCulture.DateTimeFormat.ShortDatePattern = "yyyy/M/d";

    System.Threading.Thread.CurrentThread.CurrentCulture = customCulture;
    System.Threading.Thread.CurrentThread.CurrentUICulture = customCulture;

    DateTime dt = Convert.ToDateTime(DateTime.Now.ToString("M/d/yyyy"));
    Console.WriteLine(dt.ToString())

答案 2 :(得分:0)

使用不含任何格式的ToString()时,它只使用默认的ToString()方法。 再次使用您指定的格式来获得想要的结果。

答案 3 :(得分:0)

您可以使用格式化功能显示您想要的方式

string.Format("{0:yyyy/M/d}",dateValue);

问候