【问题标题】:How convert Gregorian date to Persian date?如何将公历日期转换为波斯日期?
【发布时间】:2023-03-30 07:15:01
【问题描述】:

我想在 C# 中将自定义公历日期转换为波斯日期。 例如,我有一个包含以下内容的字符串:

string GregorianDate = "Thursday, October 24, 2013";

现在我想拥有:

字符串 PersianDate = پنج‌شنبه 2 آبان 1392 ;

字符串波斯日期 = 1392/08/02

谢谢

【问题讨论】:

    标签: c# date gregorian-calendar date-conversion persian


    【解决方案1】:

    使用波斯日历:

    string GregorianDate = "Thursday, October 24, 2013";
    DateTime d = DateTime.Parse(GregorianDate);
    PersianCalendar pc = new PersianCalendar();
    Console.WriteLine(string.Format("{0}/{1}/{2}", pc.GetYear(d), pc.GetMonth(d), pc.GetDayOfMonth(d)));
    

    【讨论】:

      【解决方案2】:

      您可以使用 PersianDateTime:

      PM> Install-Package PersianDateTime
      

      参考:PersianDateTime

      如果需要自定义,可以使用string.Split()

      【讨论】:

      • 使用示例总是很高兴在答案中看到。
      【解决方案3】:
          DateTime date = new DateTime(2013, 10, 24);
          var calendar = new PersianCalendar();
          var persianDate = new DateTime(calendar.GetYear(date), calendar.GetMonth(date), calendar.GetDayOfMonth(date));
          var result = persianDate.ToString("yyyy MMM ddd", CultureInfo.GetCultureInfo("fa-Ir"));
      

      【讨论】:

      • 在 windows 10 中,默认为波斯文化,此代码将不起作用
      • @MuhammadNaderi 即使在 Windows 10 中它也适用于我。
      【解决方案4】:

      添加其他答案,您可以使用PersianDateTime获得第一个:

      var gregorianDate = "Thursday, October 24, 2013";
      var date = DateTime.Parse(gregorianDate);
      var persianDate = new PersianDateTime(date);
      var result = persianDate.ToString("dddd d MMMM yyyy");
      

      【讨论】:

        【解决方案5】:

        在 Windows 10 中,使用框架 4+:

        Console.WriteLine(Convert.ToDateTime("1392/08/02",new CultureInfo("fa-IR")));
        

        Console.WriteLine(DateTime.Parse("1392/08/02", new CultureInfo("fa-IR")));
        

        【讨论】:

          【解决方案6】:

          fowling 代码应该在 .net 4+ 中工作:

          DateTime date=Convert.ToDateTime("2020-07-12T19:30:00.000Z");
          string persianDateString = date.ToString("yyyy/MM/dd",new CultureInfo("fa-IR"));
          

          persianDateString 值为:

          1399/04/23
          

          【讨论】:

            猜你喜欢
            • 2019-07-17
            • 1970-01-01
            • 1970-01-01
            • 2021-04-29
            • 2015-11-22
            • 1970-01-01
            • 2014-09-19
            • 2016-06-04
            相关资源
            最近更新 更多