私は開発中ですasp.net
vb
を使用するサイトフレームワーク3.5。
文字列データを日付に変換するのに苦労していますcdate関数を使用してみましたが、
文字列変数である変数sdateがあり、日付がdd/mm/yyyyとしてテキストボックスから取得され、日付を追加または減算として操作を実行する必要があるため、この文字列を日付変数に変換したい一日。
これについての説明を教えてください。 3行目にエラーが表示される、String was not recognized as a valid DateTime
。私は次のようにしようとしましたが、エラーが発生します
Dim sdate As String
Dim expenddt As Date
expenddt = Date.Parse(edate)
expenddt = expenddt.AddDays(-1)
しかし、私は次のようなエラーを受け取ります
文字列から日付型への変換は無効です。
文字列からDate
を取得するにはどうすればよいですか?
正しいフォーマット文字列でDate.ParseExact
またはDate.TryParseExact
を使用する必要があります。
Dim edate = "10/12/2009"
Dim expenddt As Date = Date.ParseExact(edate, "dd/MM/yyyy",
System.Globalization.DateTimeFormatInfo.InvariantInfo)
OR
Dim format() = {"dd/MM/yyyy", "d/M/yyyy", "dd-MM-yyyy"}
Dim expenddt As Date = Date.ParseExact(edate, format,
System.Globalization.DateTimeFormatInfo.InvariantInfo,
Globalization.DateTimeStyles.None)
OR
Dim format() = {"dd/MM/yyyy", "d/M/yyyy", "dd-MM-yyyy"}
Dim expenddt As Date
Date.TryParseExact(edate, format,
System.Globalization.DateTimeFormatInfo.InvariantInfo,
Globalization.DateTimeStyles.None, expenddt)
誰もこれに言及していませんが、場合によっては、他の方法が日時を認識できません...
代わりにこれを試すことができます。これは、日付と時刻の指定された文字列表現を同等の日付と時刻の値に変換します
string iDate = "05/05/2005";
DateTime oDate = Convert.ToDateTime(iDate);
MessageBox.Show(oDate.Day + " " + oDate.Month + " " + oDate.Year );
次のコードが役立つかどうかを確認してください。
Dim iDate As String = "05/05/2005"
Dim oDate As DateTime = Convert.ToDateTime(iDate)
DateTime.ParseExactメソッドを使用してみてください。このメソッドでは、日時マスクと元の解析された文字列の両方を指定できます。それについてはここで読むことができます: MSDN:DateTime.ParseExact
次のように日付を変換してみてください。
Dim expenddt as Date = Date.ParseExact(edate, "dd/mm/yyyy",
System.Globalization.DateTimeFormatInfo.InvariantInfo);
お役に立てれば。