如何将公历日期转换为波斯日期

本文关键字:日期 转换 | 更新日期: 2023-09-27 17:53:59

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

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

现在我想有:

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

string PersianDate = 1392/08/02

谢谢

如何将公历日期转换为波斯日期

使用波斯日历:

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)));
    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"));

可以使用PersianDateTime:

PM> Install-Package PersianDateTime

参考:PersianDateTime

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

在。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

综合其他答案,您可以使用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");

在windows 10中使用framework 4+:

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

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

您可以使用以下方法将DateTime转换为伊朗时间:

DateTime timeInIran = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTimeToConvert, "Iran Standard Time" );