ToOADateFromOADateメソッドは、日時の値をOLEオートメーション日時(double型・64ビット)の値に変換します。 このフォーマットでは時刻の種類は無視され、日時のみが変換されるという点に注意が必要です。 その他フォーマットの詳細などはToOADateメソッドのドキュメントを参照してください。

DateTime.oOADate/FromOADateメソッドで日時⇄OLEオートメーション日時の変換をする
Imports System

Class Sample
  Shared Sub Main()
    Dim dt As DateTime = DateTime.Now
    Dim oadate As Double = dt.ToOADate()

    Console.WriteLine("{0:o} -> {1}", dt, oadate)
    Console.WriteLine("{0} -> {1:o}", oadate, DateTime.FromOADate(oadate))
  End Sub
End Class
実行結果例
2013-04-01T15:00:30.1230000+09:00 -> 41365.6253486458
41365.6253486458 -> 2013-04-01T15:00:30.1230000

OLEオートメーション形式で表現できる最小(最古)の日時は0100年01月01日 00:00:00でありDateTimeで扱える範囲よりも狭いため、その範囲を越える値を変換しようとした場合はOverflowExceptionがスローされます。 (ArgumentOutOfRangeExceptionがスローされるToFileTimeメソッドとはスローされる例外が異なる点に注意してください)