显示当前时间(EST)

我创build了一个用户窗体,其中包含一个显示当前EST时间的文本框。 唯一的问题是,这个反映的时间当然是我们国家目前的时间,所以我想把它转换成东部时间,这是我们这个时间的- 12:00

 Private Sub UserForm_Initialize() If ActiveWorkbook.MultiUserEditing Then End If Application.ScreenUpdating = False Application.DisplayAlerts = False txtDate.Value = Format(Now, "mm/dd/yyyy") Application.ScreenUpdating = True Application.DisplayAlerts = True End Sub 

你需要像这样使用TimeValue函数:

 txtDate.Value = Format(Now - TimeValue("12:00:00"), "mm/dd/yyyy") 

比R3uK更复杂的方法,但我一直倾向于使用TimeSerial()DateSerial()来获得准确的条件设置(特别是当您需要修改Time的多个部分时)。

 Sub TimeToEST() Dim ESTHour As Integer If Hour(Now) - 12 < 0 Then ESTHour = 24 + Hour(Now) - 12 Else ESTHour = Hour(Now) - 12 End If txtDate.Value = TimeSerial(ESTHour, Minute(Now), Second(Now)) End Sub 

只显示EST中的当前date:

 Sub DateToEST() Dim ESTDate As Date If Hour(Now) < 12 And Day(Now) = 1 Then ESTDate = Now - TimeValue("12:00:00") ElseIf Hour(Now) < 12 Then ESTDate = DateSerial(Year(Now), Month(Now), Day(Now) - 1) Else ESTDate = DateSerial(Year(Now), Month(Now), Day(Now)) End If txtDate.Value = ESTDate End Sub 

如果你想在公式中使用它,它就简单多了。 使用NOW()函数,然后使用TIME函数减去差值。

例如,我在一个比EST早9:30的时区。 所以得到EST时间,我将使用NOW()在当前时区取当前date时间,然后使用以下公式从中减去9小时30分钟。

= NOW() – TIME(9,30,0)

请享用!