Я использую персидский календарь в своем приложении, я использую этот код:
using System.Globalization;
[...]
PersianCalendar pc = new PersianCalendar();
DateTime thistime = DateTime.Now;
string persiantimenow = pc.GetHour(thistime) + ":" + pc.GetMinute(thistime);
Console.WriteLine(persiantimenow);
Сейчас 12:35, поэтому вывод: 0:33, но я хочу, чтобы он был00: 33
Я пытался использовать:
string persiantimenow = pc.GetHour(thistime.ToString("hh")) + ":" + pc.GetMinute(thistime.ToString("mm"));
Это дало мне ошибку, поэтому я использовал следующий, но также выдало ту же ошибку
string thistime_Hour = thistime.ToString("HH");
string thistime_minute = thistime.ToString("MM");
string persiantimenow = pc.GetHour(thistime_Hour) + ":" + pc.GetMinut(thistime_minute);
Но я получаюОшибка:
Argument 1: cannot convert from 'string' to 'System.DateTime'
РЕДАКТИРОВАТЬ 1 [Я нашел хитрое решение]
if (pc.GetHour(thistime) < 12)
{
string persiantimenow = "0" + pc.GetHour(thistime) + ":" + pc.GetMinute(thistime);
Console.WriteLine(persiantimenow);
}
Это не то, что мне нужно, но это решает проблему.
РЕДАКТИРОВАТЬ 2[LB решил это для меня] Вот решение:
string persiantimenow = pc.GetHour(thistime).ToString("00") + ":" + pc.GetMinute(thistime).ToString("00");