- 日時: 2009/12/27 20:36
- 名前: 花ちゃん
- ***********************************************************************************
* カテゴリー:[日付・時刻][][] * * キーワード:文字列日付,日付型,変換,日付の文字列をDate型の値に変換, * *********************************************************************************** タイトル : 文字列を日付型へ変換 記 事 No : 7618 投 稿 日 : 2008/05/27(Tue) 15:05 元質問者 : ダンボ
VB6掲示板での同名の質問と回答 http://hanatyan.sakura.ne.jp/vb60bbs/wforum.cgi?mode=allread&no=12331&page=0 から、 CDate(Format("20080522", "0000\/00\/00")) はスマートでよいなぁと思い、VB2005で使ってみましたが駄目ですね。 「String "0000\/00\/00" から型 'Date' への変換は無効です」 という例外が起きてしまいます。
strDateに"20080522"が入っているとして、 DateSerial(CInt(strDate.Substring(0, 4)), CInt(strDate.Substring(4, 2)), CInt(strDate.Substring(6, 2))) というのが、私のオリジナルなコードで、正しく動作するんですが泥臭い。
スマートなコードありますか?
----------------------------------------------------------------------------------- 記事No : 7619 投稿日 : 2008/05/27(Tue) 15:39 回答者 : 花ちゃん ----------------------------------------------------------------------------------- > CDate(Format("20080522", "0000\/00\/00")) > はスマートでよいなぁと思い、VB2005で使ってみましたが駄目ですね。 > 「String "0000\/00\/00" から型 'Date' への変換は無効です」 > という例外が起きてしまいます。
下記なら、一応 通ります。 CDate(Format(CDbl("20080522"), "0000\/00\/00")) CDate(Format(20080522, "0000\/00\/00"))
----------------------------------------------------------------------------------- 記事No : 7620 投稿日 : 2008/05/27(Tue) 15:43 回答者 : 魔界の仮面弁士 ----------------------------------------------------------------------------------- > CDate(Format("20080522", "0000\/00\/00"))
Dim dt As Date = Date.ParseExact("20080522", "yyyyMMdd", CultureInfo.InvariantCulture)
|