0

我的数据库中有 char(10) 字段(它是波斯日期字段)。我在 c# 中对某些日期的控制会创建 char(8)。然后我在存储过程中遇到问题(dateFrom 和 DateTo 之间的日期)。我必须有 char(10)。我想在 c# 中编写函数来检查字符串,如果它的长度小于 10,则将其转换为 10。我的格式是 yyyy/mm/dd。(yyyy 在我的控制中没有问题)例如我想将 1391/1/1 转换为 1391/01/01 请帮助我如何插入 0 并检查 / 之后的数字。

4

4 回答 4

0

类似于以下内容。

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-21T05:18:39.910 回答
0
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

}
于 2013-08-21T05:22:36.647 回答
0

可用的日期格式 *相应选择*

<%= String.Format("{specifier}", DateTime.Now) %>

Specifier   Description Output
d   Short Date             08/04/2007
D   Long Date              08 April 2007
t   Short Time             21:08
T   Long Time              21:08:59
f   Full date and time     08 April 2007 21:08
F   Full date and time (long)  08 April 2007 21:08:59
g   Default date and time      08/04/2007 21:08
G   Default date and time (long)08/04/2007 21:08:59
M   Day / Month            08 April
r   RFC1123 date               Sun, 08 Apr 2007 21:08:59 GMT
s   Sortable date/time     2007-04-08T21:08:59
u   Universal time, local timezone  2007-04-08 21:08:59Z
Y   Month / Year               April 2007
dd  Day                    08
ddd Short Day Name             Sun
dddd    Full Day Name      Sunday
hh  2 digit hour               09
HH  2 digit hour (24 hour)     21
mm  2 digit minute             08
MM  Month                      04
MMM Short Month name       Apr
MMMM    Month name     April
ss  seconds                    59
tt  AM/PM                      PM
yy  2 digit year               07
yyyy    4 digit year       2007
:   seperator, e.g. {0:hh:mm:ss}    09:08:59
/   seperator, e.g. {0:dd/MM/yyyy}  08/04/2007
于 2013-08-21T05:24:25.310 回答
0

问题解决了。

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-21T09:33:11.737 回答