[英]How to convert Persian date string to Datetime format
根据以下代码,当我在方法中收到回历(波斯)时间字符串并想将其转换为日期时间时,如果我希望回历(波斯)格式为日期时间,格式将返回为公历格式。
public static DateTime Convert_String_To_DateTime(string PersianDate, string Time)
{
PersianCalendar pc = new PersianCalendar();
int year = Convert.ToInt32(PersianDate.Substring(0, PersianDate.IndexOf('/')));
int month = Convert.ToInt32(PersianDate.Substring(PersianDate.IndexOf('/') + 1, 2));
int day = Convert.ToInt32(PersianDate.Substring(PersianDate.IndexOf('/') + 4, 2));
int hour = Convert.ToInt32(Time.Substring(0, Time.IndexOf(':')));
int min = Convert.ToInt32(Time.Substring(Time.IndexOf(':') + 1));
DateTime ConvertedDate = new DateTime(year, month, day, hour, min, 0, pc);
return ConvertedDate;
}
我不是 100% 确定您想要完成什么,但如果您想更改您可以使用的日期和时间的 output
DateTime dt = DateTime.Now;
string mydate = dt.ToString("dd-MM-yyyy hh:mm:ss");
dd - 天 MM - 月短前。 八月你会得到 08 如果你只想要 8 使用单个 M 和 MMM 3 个字母和 MMMM 整个一个月,比如八月 yyyy - 年同样的规则也适用于年份 hh-Hour mm-minute ss secont 你也有 tt这将显示你上午/下午
您从 PersianCalendar 库中使用,您应该使用该库中的 function 解决您的问题
Datetime miladiconvert= PersianDateTime.Parse(Yourvariable).ToDateTime();
但是你应该在这个解析中传递正确的格式,所以你应该我写的这个函数并使用它
public string convertdate(string date)
{
string[] st = new string[3];
st = date.Split('/');
if (int.Parse(st[0]) < 10)//year
{
st[0] = "0" + st[0];
}
if (int.Parse(st[1]) < 10 && st[1].Length == 1)//month
{
st[1] = "0" + st[1];
}
if (int.Parse(st[2]) < 10 && st[2].Length == 1)//day
{
st[2] = "0" + st[2];
}
date = st[0] + "/" + st[1] + "/" + st[2];
return date;
}
最后,如果您想添加小时和分钟,您可以使用 from add
miladiconvert= miladiconvert.AddHours(your Hours)
miladiconvert=miladiconvert.AddMinutes(your Minutes)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.