以下は、VS2010の私の即時ウィンドウからのコピーアンドペーストです。Now関数の文字列表現は同じですが、バイナリ表現が大きく異なることに注意してください。CDateからNow関数をアンラップしても違いはありません。なんで?
?CDate(Now)
1/8/2013 10:06:46 AM
?CDate(Now.ToString)
1/8/2013 10:06:52 AM
?CDate(Now.ToString).ToBinary
634932364230000000
?CDate(Now).ToBinary
-8588439384563815032
?Now.ToBinary
-8588439380551725996
現在、すべての行でまったく同じ時刻で作業していることに注意してください。ToString関数を使用すると、なぜ「異常な」数値結果が得られるのですか?
?Now.ToBinary
-8588439366264255565
?datetime.FromBinary(-8588439366264255565)
1/8/2013 10:37:39 AM
?datetime.FromBinary(-8588439366264255565).ToBinary
-8588439366264255565
?cdate(datetime.FromBinary(-8588439366264255565).ToString ).ToBinary
634932382590000000
?CDate(datetime.FromBinary(-8588439366264255565)).ToBinary
-8588439366264255565