Как определить локальное представление определенной даты и времени по Гринвичу - PullRequest
2 голосов
/ 12 ноября 2010

Я хочу получить значение даты для

1 ноября 2010 г. 00:00:00 по Гринвичу

, выраженное по местному времени.

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 Ответ

1 голос
/ 12 ноября 2010

Вы можете использовать ToLocalTime для преобразования DateTime из UTC в местный часовой пояс.

Date - это псевдоним для DateTime. Я предполагаю, что это было сделано по причинам обратной совместимости.

...