我的数据库中有char(10)字段(这是波斯日期字段)。我在c#中的控件在某个日期创建char(8)。然后我在存储过程中遇到了问题( dateFrom和DateTo之间的日期)。我必须有char(10)。我想用c#写函数来检查字符串,如果它的长度小于10,将它转换为10。我的格式是yyyy/mm/dd。(yyyy在我的控制中没有问题),例如,我想将1391 / 1/1转换为1391/01/01,请帮助我如何插入0并检查/后的数字。
发布于 2013-08-21 01:33:11
问题解决了。
public static string ConvertToDate(string persianDate)
{
try
{
if (persianDate.Length != 10)
{
char a = Convert.ToChar(persianDate.Substring(4, 1));
char b = Convert.ToChar(persianDate.Substring(6, 1));
if (a == '/' && b == '/')
{
if (persianDate.Length == 9)
{
persianDate = persianDate.Insert(5, '0'.ToString());
}
if (persianDate.Length == 8)
{
persianDate = persianDate.Insert(5, '0'.ToString());
persianDate = persianDate.Insert(8, '0'.ToString());
}
}
char c = Convert.ToChar(persianDate.Substring(7, 1));
if (c == '/')
{
if (persianDate.Length == 9)
{
persianDate = persianDate.Insert(8, '0'.ToString());
}
}
}
return persianDate;
}
catch (Exception ex)
{
ExceptionkeeperBll.LogFileWrite(ex);
return null;
}
}
}
发布于 2013-08-20 21:18:39
如下所示。
string[] words = date.Split('/');
if (words[1].Length == 1)
{
words[1]="0"+words[1];
}
if (words[2].Length == 1)
{
words[2]="0"+words[2];
}
string newDate = words[0] + "/" + words[1] + "/" + words[2];
发布于 2013-08-20 21:22:36
DateTime res;
string input = "1391/1/1";
if (DateTime.TryParseExact(input, "yyyy/M/d", CultureInfo.InvariantCulture, DateTimeStyles.None, out res))
{
string toDb = res.ToString("yyyy/MM/dd"); //1391/01/01
}
https://stackoverflow.com/questions/18349288
复制