我的代码如下: -
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”,即在一天和一个月没有领先的零?
答案 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);
问候