DateTimeOffsetでは、時刻は常にいずれかのタイムゾーンでの時刻を表す(UTCからの時差を持つ)ものとして扱われるため、時刻の種類という概念はありません。 そのかわり、タイムゾーンに対応するオフセット値を表すプロパティOffsetが用意されています。

このプロパティはUTCからの時差をTimeSpanとして表し、例えばDateTimeOffsetの表す日時がUTCの場合、Offsetプロパティの値は +00:00:00 (TimeSpan.Zero)になります。 また、実行環境の時刻が日本標準時(UTC+9)に設定されている環境の場合、DateTimeOffset.NowプロパティはOffsetに +09:00:00 が設定された値を返します。

なお、DateTimeOffset.DateTimeプロパティを参照すると、DateTimeOffsetからオフセット値部分を除いて日時部分だけにしたDateTimeを取得できます。 このプロパティで取得できるDateTimeのKindプロパティの値は、DateTimeKind.Unspecifiedとなります。

オフセット値を指定してDateTimeOffsetインスタンスを作成する
Imports System

Class Sample
  Shared Sub Main()
    Dim dt As New DateTime(2013, 4, 1, 15, 0, 30, 123)
    Dim a As New DateTimeOffset(dt, TimeSpan.Zero)   ' UTC+0の日時を指定
    Dim b As New DateTimeOffset(dt, new TimeSpan(-5, 0, 0))  ' UTC-5(東部標準時)の日時を指定
    Dim c As New DateTimeOffset(dt, new TimeSpan(+9, 0, 0))  ' UTC+9(日本標準時)の日時を指定
    Dim d As DateTimeOffset = DateTimeOffset.Now    ' ローカル時刻での現在日時を取得
    Dim e As DateTimeOffset = DateTimeOffset.UtcNow ' UTCでの現在日時を取得

    For Each dto As DateTimeOffset In New DateTimeOffset() {a, b, c, d, e}
      Console.WriteLine("{0}, {1}", dto.DateTime, dto.Offset)
    Next
  End Sub
End Class
実行結果例
2013/04/01 15:00:30, 00:00:00
2013/04/01 15:00:30, -05:00:00
2013/04/01 15:00:30, 09:00:00
2013/04/01 15:30:05, 09:00:00
2013/04/01 6:30:05, 00:00:00