将可为空的日期转换为 vb.net 中的通用时间

Convert a nullable date to universal time in vb.net

当我尝试使用 .ToUniversalTime 转换可为 null 的日期时,我收到错误 "ToUniversalTime" is not member of "Date?"

Dim tempEndDate As Nullable(Of Date)
tempEndDate = EndDate.ToUniversalTime

无效。关于如何处理这个问题有什么想法吗?

这个有效:

Dim EndDate As DateTime? = DateTime.Now    ' nullable date

Dim tempEndDate As DateTime
If EndDate.HasValue Then        ' check for Nothing
    tempEndDate = EndDate.Value.ToUniversalTime
End If

Console.WriteLine("Before: " & enddate.Value.ToString)
Console.WriteLine(" After: " & tempEndDate.ToString)

输出:

Before: 4/2/2015 10:44:48 AM
After: 4/2/2015 3:44:48 PM

ToUniversalTime 不是 Nullable<T> 的方法,但它是 DateTime 的成员,公开为 .Value.