1

日付を取得して別の形式に変換する日時入力フィールドがあります。そのためのコードです

try
{
    DateTime dt = dtiFrom.Value.Date;
    string format = "DD-MM-YYYY"; // Use this format
    MessageBox.Show(dt.ToString(format)); // here its shows result as DD-10-YYYY
    DateTime dt1 = Convert.ToDateTime(dt.ToString(format)); // here Error "The string was not recognized as a valid DateTime. There is an unknown word starting at index 0."
}
catch (Exception ee)
{
    MessageBox.Show(ee.Message, "Error Message!");
}

形式に従って日付を変換できません。コードで私を助けたり、コードを提案したりしてください。前もって感謝します

4

2 に答える 2

5

フォーマットは次のようになります。

string format = "dd-MM-yyyy";

m文字列のフォーマットでは大文字と小文字の区別が重要です。月が大文字を使用するのは奇妙に思えるかもしれませんが、これは小文字がmm分を表すために使用されるためです。

出力が表示される理由は、フォーマット文字として予約されていない文字が変更されずに出力されるためであることに注意してDDくださいYYYY。大文字Dで予約されていないため、変更されないままY出力に表示されます。-

予約されたフォーマット文字を出力したい場合は、 を使用してエスケープできます\

日付と時刻の形式の値の完全なリストについては、こちらを参照してください

于 2013-10-30T09:46:52.270 に答える
1

TryParseExactConvert を使用する代わりに、日付パターン形式を変更して使用することをお勧めします

DateTime dt = dtiFrom.Value.Date;
string format = "dd-MM-yyyy";
DateTime dt1 = new DateTime();

if (DateTime.TryParseExact(dt , format, null , DateTimeStyles.None, out dt1))
{
  // you can use dt1 here
}
else
{
  MessageBox.Show("Error Massage");
}
于 2013-10-30T09:59:07.897 に答える