【问题标题】:c# datetime formatc#日期时间格式
【发布时间】:2009-10-08 15:25:28
【问题描述】:

我希望我的 DateTime 有一个特定的格式,具体取决于当前的文化。

所以我试试这个:

dateTime.ToString("dd/MM/yyyy hh:mm");

这部分没问题, / 被文化特定的分隔符替换。但是根据文化,日期和月份的顺序不会切换(如 MM/dd)。

使用.ToString("g") 有效,但不包括前导零。

我该如何做到这一点?

【问题讨论】:

标签: c# datetime format culture


【解决方案1】:

我认为这会做你想要的:

System.Globalization.DateTimeFormatInfo format =
    System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat;
string dateTime = DateTime.Now.ToString(format.FullDateTimePattern);

编辑:

您可以在短时间内执行以下操作:

    System.Globalization.DateTimeFormatInfo format =
         System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat;
    string dateTime = DateTime.Now.ToString(format.ShortDatePattern + " " + 
         format.ShortTimePattern);

【讨论】:

  • FullDateTimePattern 是 "dddd, MMMM dd, yyyy h:mm:ss tt" 用于 en-US
  • 也和 dateTime.ToShortDateString + " " + dateTime.ToShortTimeString 一样,都比你的代码短很多。
【解决方案2】:

您可以在Standard Date and Time Format Strings 文档页面中找到您想要的格式,而不是使用“g”。

编辑:看起来你可能想要CultureInfo.DateTimeFormat.ShortDatePattern,但还是要看看选项。

【讨论】:

    【解决方案3】:

    / 字符是一个占位符,将替换为当前区域性的日期分隔字符。如果您希望“硬编码”格式以使用/,您需要像这样更改格式字符串:

    dateTime.ToString("dd'/'MM'/'yyyy hh':'mm");
    

    【讨论】:

      【解决方案4】:

      您确实想使用“g”,但前导零取决于文化。 Invariant 文化和其他一些文化将包括前导零,但其他文化不会。

      您想保持前导零有什么特别的原因吗?

      【讨论】:

        【解决方案5】:

        试试这个:

        var cinf = CultureInfo.CurrentCulture.DateTimeFormat.DateSeparator;
        
        DateTime.Now.ToString("dd/MM/yyyy hh:mm").Replace(cinf,"/");
        

        【讨论】:

          【解决方案6】:

          如果您对标准模式不满意,可以这样编辑它们:

          DateTimeFormatInfo format = (DateTimeFormatInfo) CultureInfo.CurrentCulture.DateTimeFormat.Clone();
          format.ShortTimePattern = "hh:mm"; // example only
          string result = value.ToString("g", format);
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2013-11-19
            • 1970-01-01
            • 1970-01-01
            • 2010-10-21
            • 2011-04-09
            • 1970-01-01
            相关资源
            最近更新 更多