- 締切済み
Date型へのキャストについて
VB.NET初心者です。 String型からDate型へキャストをしたいのですが、よそのサイト様を参考にいろいろ試してみたのですが、うまくいかず困っています。どなたか、教えてください。よろしくお願いします。 エラー:『文字列は有効なDateTimeではありません』 Dim str1 As String = "2009/08/01" または Dim str2 As String = "2009/08/01 12:00:00" str2 = str2.substring(0,10).replacce("/","") の形式で取得した値を"yyyy/mm/dd形式で"Date方へキャストしたいのですが.... Dim dt As Date = Date.ParseExact(str, "yyyy/MM/dd", Nothing) Dim dt As Date = Date.parse(str) Dim dt As Date = Ctype(str, Date) など試してみたのですが、#8/1/2009#のように書式がおかしいのですが、どこを直せばよいのでしょうか? Date.ParseExact()でできると思っていたのですが、悩んでいます。よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- kazuhisa01
- ベストアンサー率32% (158/487)
Dim str1 As String = "2009/08/01" Dim str2 As String = "2009/08/01 12:00:00" 両方ともこのような形式で固定であればCtypeで変換できます。 Dim dtEditDate1 As Date = Ctype(str1 , Date) Dim dtEditDate2 As Date = Ctype(str2 , Date) なぜ「str2 = str2.substring(0,10).replacce("/","")」の処理を挟まなければいけないのか疑問なのですが、何か特別な理由があるのでしょうか? --------------------------------------------------------------- #8/1/2009# の話です。 これはデバッグ状態で変数の中身を見た場合に表示された値ですよね。 Date型は #MM/dd/yyyy# で情報を持っているようです。 試しに dt を ToString で表示してみて下さい。 ちゃんと 2009/8/1 と返って来るはずです。
お礼
早速、回答を頂きありがとうございます。 ちょっと、慌てていたためか初歩的な勘違いをしていたみたいです。今朝、確認したらちゃんとキャストされていました。ありあがとうございました。