1

生年月日をvar char形式で保存しました:

例: 1989-8-15

それから部分文字列を見つけたい、つまり年、月、日を分けたい。次のコードで試しました:

string dateOfbirth = (string)(DataBinder.Eval(e.Item.DataItem, "dob"));

int length = (dateOfbirth).Length;
int index1 = dateOfbirth.IndexOf('-');
int index2 = dateOfbirth.IndexOf('-', index1 + 1);
string year = dateOfbirth.Substring(0, index1);
string month = dateOfbirth.Substring(index+1, index2-1);
string day = dateOfbirth.Substring(index2, length);

エラーが発生しています。解決策を提案してください。前もって感謝します。

4

5 に答える 5

5

これを試すことができます

string [] date = dateOfbirth.Split('-');
string year = date[0];
string month = date[1];
string day = date[2];
于 2013-06-26T09:58:11.407 に答える
4
DateTime dob = DateTime.ParseExact("1989-8-15","yyyy-M-dd",null);
Console.WriteLine(dob.Year);
Console.WriteLine(dob.Month);
Console.WriteLine(dob.Day);

きれいで簡単。

UPD :カスタムの日付形式に変更ParseされましたParseExact

于 2013-06-26T09:58:45.600 に答える
0

実際にあなたの質問に答えるには:

string dateOfbirth = "1989-8-15";

int length = (dateOfbirth).Length;
int index1 = dateOfbirth.IndexOf('-');
int index2 = dateOfbirth.IndexOf('-', index1 + 1);

string year = dateOfbirth.Substring(0, index1);
string month = dateOfbirth.Substring(index1 + 1, index2 - index1 - 1);
string day = dateOfbirth.Substring(index2 + 1, length - index2 - 1);

Substringメソッドに正しいパラメーターを指定するだけです。

ただし、使用dateOfBirth.Split('-')することはおそらく問題のより良い解決策になるでしょう。

于 2013-06-26T10:00:21.513 に答える