如何确定特定GMT日期时间的本地表示

时间:2010-11-12 14:57:13

标签: vb.net datetime date

我想获取

的日期值

2010年11月1日00:00:00 GMT

在当地时间表达。

What is the best way? Currently, I am doing this:

    Dim NovGmt As Date = New Date(2010, 11, 1, 0, 0, 0)
    Dim Nov1AsLocal As Date = GetGmtExpressedAsLocal(NovGmt)



   Private Function GetGmtExpressedAsLocal(ByVal gmtDate As Date) As Date
        Return gmtDate.AddMinutes(GetMinuteOffsetFromGmt)
    End Function

   Private Function GetMinuteOffsetFromGmt() As Double

       Dim NowTime As Date = Now
       Dim NowAsGmt As Date = NowTime.ToUniversalTime

       Return CType(DateDiff(DateInterval.Minute, NowAsGmt, NowTime), Double)

   End Function

另外,有人可以告诉我Date和DateTime数据类型之间的区别吗? DateTime比Date更新还是仅仅是Date的同义词?如果是后者,为什么两者都有?

1 个答案:

答案 0 :(得分:1)

您可以使用ToLocalTimeDateTime从UTC转换为本地时区。

DateDateTime的别名。我认为这是出于向后兼容的原因。