2015-10-04 71 views
1

我可以在标准的日期转换为波斯标准日期的功能,你可以在这里看到:转换标准日期标准波斯日期在C#

public string ConvertToPersianToShow(DateTime datetime) 
     { 
      PersianCalendar persian_date = new PersianCalendar(); 
      string date; 
      string year = Convert.ToString(persian_date.GetYear(datetime)); 
      string Month = Convert.ToString(persian_date.GetMonth(datetime)); 
      string day = Convert.ToString(persian_date.GetDayOfMonth(datetime)); 

      date = year+"/" + Month + "/" + day; 
      return date; 
     } 

但我有这些输出的一个问题:

1394/5/1 
1394/12/8 
1395/7/12 

这些输出应该是这样的:

1394/05/01 
1394/12/08 
1395/07/12 

我可以算一天的位数nd月,但我不是最好的方式做到这一点。请你给我一些帮助,我该如何改变这些输出使用stringformat

回答

2

所有你需要做的就是添加一个前导零。可以使用.ToString

string Month = persian_date.GetMonth(datetime).ToString("D2"); 
string day = persian_date.GetDayOfMonth(datetime).ToString("D2"); 
+0

你的意思是返回date.ToString();? –

+0

我添加了,但它不起作用 –

+0

是的,它会,你为什么说它不起作用。 –

3

您可以使用此功能:

private static string UpdateDate(string date) 
{ 
    date.PadLeft(2, '0'); 
} 

date = year+"/" + UpdateDate(Month) + "/" + UpdateDate(day);