如何转换字符串长度

本文关键字:字符串 转换 何转换 | 更新日期: 2023-09-27 18:28:35

我的数据库中有char(10)字段(它是波斯日期字段)。我在c#中对某个日期的控制创建了char(8)。那么我在存储过程中遇到了问题(其中日期介于dateFrom和DateTo之间)。我一定有char(10)。我想在c中写一个函数来检查字符串,如果它的长度小于10,就把它转换成10。我的格式是yyyy/mm/dd。(yyyy在我的控制范围内没有问题)例如,我想将1391/1/1转换为1391/01/01请帮我插入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
}

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

<%= 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

问题已解决。

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;
        }
    }
}

类似以下内容。

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];