web-dev-qa-db-ja.com

文字列を日時に変換する

私は開発中ですasp.netvbを使用するサイトフレームワーク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を取得するにはどうすればよいですか?

17
Ishan

正しいフォーマット文字列で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)
43
adatapost

誰もこれに言及していませんが、場合によっては、他の方法が日時を認識できません...

代わりにこれを試すことができます。これは、日付と時刻の指定された文字列表現を同等の日付と時刻の値に変換します

string iDate = "05/05/2005";
DateTime oDate = Convert.ToDateTime(iDate);
MessageBox.Show(oDate.Day + " " + oDate.Month + "  " + oDate.Year );
3
Inc33

次のコードが役立つかどうかを確認してください。

Dim iDate As String = "05/05/2005"
Dim oDate As DateTime = Convert.ToDateTime(iDate)
3
Doug Null

DateTime.ParseExactメソッドを使用してみてください。このメソッドでは、日時マスクと元の解析された文字列の両方を指定できます。それについてはここで読むことができます: MSDN:DateTime.ParseExact

2
Dmitry Bastron

次のように日付を変換してみてください。

    Dim expenddt as Date = Date.ParseExact(edate, "dd/mm/yyyy", 
System.Globalization.DateTimeFormatInfo.InvariantInfo);

お役に立てれば。

2
AlphaMale