【问题标题】:C# Datetime format. Localized strings like "sec" "year"C# 日期时间格式。本地化字符串,如 "sec" "year"
【发布时间】:2011-06-06 13:19:17
【问题描述】:

我需要为客户显示格式日期时间,例如“12 秒”“2011 年”
如何获取本地化字符串“sec”、“year”。 .net 中是否存在特殊格式来获取这些字符串?

【问题讨论】:

  • .NET 中已经有成熟且易于查找的本地化日期格式。全世界大约任何用户都将能够识别它们。当然,它们看起来不像您的自定义格式。也许您不应该使用自定义格式。

标签: c# .net datetime format


【解决方案1】:

不,没有。

您将需要构建包含这些本地化值的资源文件并使用它们。

【讨论】:

    【解决方案2】:

    不,但你可以使用这样的东西。

    DateTime.ToString("ss") + "sec";
    

    【讨论】:

      【解决方案3】:

      你能做的最好的就是:

      private const string yearText = "{0} year"; // do this for month or hour or minute..
      DateTime date = new DateTime(1999, 12, 10, 5, 10, 16);
      string year = GetYearString(date);
      
      private string GetYearString(DateTime date)
      {
            return string.Format(yearText, date.Year);
      }
      

      您也可以为此创建一个枚举并将其传递给您的方法并根据枚举返回您的字符串。

      【讨论】:

        【解决方案4】:

        使用 DateTime.ToString(String, IformatProvider) 方法,您可以大量自定义 DateTime 的表示形式(请参阅the method documentation 了解更多信息)。一些选项已经使用此 API 进行了本地化,但您需要一个自定义资源文件来用于“sec”、year 等的本地化版本。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-03-14
          • 1970-01-01
          • 1970-01-01
          • 2017-06-14
          • 1970-01-01
          • 1970-01-01
          • 2012-05-04
          • 1970-01-01
          相关资源
          最近更新 更多