日期格式返回为M / d / yyyy而不是MM / dd / yyyy c#

时间:2016-06-20 18:10:31

标签: c# date-formatting

我使用下面的代码在c#

中获取ShortDatePattern格式
CultureInfo.GetCultureInfo("en-US").DateTimeFormat.ShortDatePattern

将我作为" M / d / yyyy"但我期待" MM / dd / yyyy"作为其美国日期格式。为什么我得到第一种格式而不是第二种?

2 个答案:

答案 0 :(得分:6)

这取决于机器。您可以在计算机的控制面板中进行设置,M/d/yyyy是默认设置。虽然您可以将其更改为匹配,但您不能依赖具有相同设置的其他计算机,而您真的不应该假设其他用户会对您的设置选择感到满意。如果您需要特定格式,请询问该特定格式。

Time Format

答案 1 :(得分:0)

您可以更改ShortDatePattern。默认为M / d / yyyy

以下是一个例子

DateTimeFormatInfo dtfi = CultureInfo.CreateSpecificCulture("en-US").DateTimeFormat;
      DateTime date1 = new DateTime(2011, 5, 1);
      Console.WriteLine("Original Short Date Pattern:");
      Console.WriteLine("   {0}: {1}", dtfi.ShortDatePattern, 
                                       date1.ToString("d", dtfi));
      dtfi.DateSeparator = "-";
      dtfi.ShortDatePattern = @"yyyy/MM/dd";
      Console.WriteLine("Revised Short Date Pattern:");
      Console.WriteLine("   {0}: {1}", dtfi.ShortDatePattern, 
                                       date1.ToString("d", dtfi));

// The example displays the following output:
//       Original Short Date Pattern:
//          M/d/yyyy: 5/1/2011
//       Revised Short Date Pattern:
//          yyyy/MM/dd: 2011-05-01