我正在使用当前时间在 Excel 中运行“实时”计算=NOW()
。Excel 文件保存在我的 OneDrive 中。当我将 Excel 工作表嵌入网页时,有时它会显示本地(系统)时间,有时它会显示 UTC 时间。这似乎取决于所使用的设备或浏览器。如果我从 Windows 计算机访问网站,时间将显示为系统时间。如果我从 iPhone 或 Mac 计算机查看它,它会显示 UTC 时间。有没有办法强制它使用 UTC 时间(首选),或者强制它使用本地系统时间?两者都可以工作,但需要保持一致才能使我的计算正确?由于这是嵌入的,所以不能有指向外部站点或宏的链接。另外我要说的是,我不在乎用户处于哪个时区,只要所有人处理的时间都相同即可。我已经创建了一篇博客文章来展示这个问题。
https://currentawarenessnaples.blogspot.com/2023/09/blog-post_25.html
我正在使用 Excel 生成的 iframe 代码来嵌入它。
答案1
此代码适用于 Excel 365 VBA
Option Explicit
Sub sbTest()
MsgBox GetUTCTime()
End Sub
Public Function GetUTCTime() As Date
' https://599cd.com/blog/display-article.asp?ID=1398
Dim XMLHTTP As Object
Dim ResponseText As String
Dim MyURL As String
Dim L As Long, S As String
MyURL = "http://worldtimeapi.org/api/ip.txt"
Set XMLHTTP = CreateObject("MSXML2.XMLHTTP")
XMLHTTP.Open "GET", MyURL, False
XMLHTTP.send
ResponseText = XMLHTTP.ResponseText
ResponseText = Replace(ResponseText, Chr(10), vbNewLine)
Set XMLHTTP = Nothing
S = ResponseText
L = InStr(S, "utc_datetime:")
S = Right(S, Len(S) - L + 1)
S = Left(S, 33)
S = Mid(S, 20, 2) & "/" & Mid(S, 23, 2) & "/" & Mid(S, 15, 4) & " " & Right(S, 8)
GetUTCTime = CDate(S)
End Function