【问题标题】:How to convert a datetime in CurrentCulture format to Gregorian DateTime?如何将 CurrentCulture 格式的日期时间转换为公历日期时间?
【发布时间】:2013-04-12 05:59:54
【问题描述】:

我将Global.asax 设置为:

protected void Application_BeginRequest(object sender, EventArgs e)
    {
        PersianCulture fa = new PersianCulture();

        Thread.CurrentThread.CurrentCulture = fa;
    }

我想将“1392 1 23”转换为“2013 4 12”。

我该怎么做?

【问题讨论】:

    标签: c# datetime


    【解决方案1】:

    没有“波斯人DateTime”这样的东西。 DateTime 值始终是公历值,没有特定格式。当您对其进行格式化时(通常通过调用ToString),您可以确定它是如何格式化的 - 如果您使用的文化使用非公历,它会将原始值转换为该日历。

    例如,如果您想解析来自波斯语用户的输入,然后将其转换为英语用户可以理解的等效日期,您可以使用:

    DateTime date = DateTime.Parse(text, persianCulture);
    string englishText = date.ToString(englishCulture);
    

    【讨论】:

      【解决方案2】:

      我不相信English Datetime中有一个叫做Persian Datetime的术语。

      来自MSDN;

      DateTime 值类型表示日期和时间,其值范围 0001 年 1 月 1 日 00:00:00(午夜)开始 Anno Domini(共同时代) 至 11:59:59 P.M.,公元 9999 年 12 月 31 日(C.E.)在 格里高利 日历。

      当您将Culture 与DateTime 一起使用时,它会自动转换为此日历。

      CultureInfo 类提供特定于文化的信息,例如 语言、子语言、国家/地区、日历和约定 与特定的文化有关。此类还提供访问 到DateTimeFormatInfo 的文化特定实例, NumberFormatInfo、CompareInfo 和 TextInfo 对象。这些对象 包含特定文化操作所需的信息,例如 作为大小写、格式化日期和数字以及比较字符串。

      【讨论】:

        【解决方案3】:

        您可以使用DateTime.Parse()

         System.Globalization.CultureInfo cultureinfo = 
            new System.Globalization.CultureInfo("en-US");
            DateTime dt = DateTime.Parse("11/04/2013", cultureinfo);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-09-03
          • 1970-01-01
          • 2017-12-09
          • 2015-03-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多