我需要一些AppleScript代码,这些代码将转到网站(https://www.time.gov/)并返回日期。我几乎没有编写AppleScript代码的经验,并且在弄清楚如何做到这一点方面经历了非常艰难的时光。
一个小上下文:AppleScript代码将在Excel工作簿的VBA代码内部使用。 AppleScript代码被分配给String变量,然后执行。这是一个简单的示例。
Function FileExistsOnMac(Filestr As String) As Boolean
Dim ScriptToCheckFile As String
ScriptToCheckFile = "tell application " & Chr(34) & "System Events" & Chr(34) & _
" to return (exists disk item " & Chr(34) & Filestr & Chr(34) & ") and class of disk item " & _
Chr(34) & Filestr & Chr(34) & " = file "
FileExistsOnMac = MacScript(ScriptToCheckFile)
End Function
在我的情况下,我将让Function的类型为String(或日期),并且它将返回AppleScript代码从网站返回的日期。如果有人可以告诉我AppleScript代码是什么,将不胜感激。
答案 0 :(得分:1)
抓取(即通过读取网站的文本或源代码)不是获取日期和时间信息的理想方法,并且您选择的网站特别糟糕,因为它通过JavaScript不断显示实时时间,更新页面的内容,因此页面的实际源代码实际上并不包含任何可读的日期或时间信息。
从Internet检索时间的更常规方法是从时间服务器进行。 time.gov
在nist.time.gov
中有一个,您可以使用以下bash shell命令请求日期和时间:
cat </dev/tcp/time.nist.gov/13
返回如下内容:
58641 19-06-07 06:19:14 50 0 0 800.5 UTC(NIST) *
第二个和第三个字段是您想要的字段,分别代表日期和时间。我们可以使用awk
来进行一些清理:
cat </dev/tcp/time.nist.gov/13 | awk 'length($0)>0 {print 20$2,$3}'
返回:
2019-06-07 06:19:14
由于您明确要求使用AppleScript进行此操作,因此日期和时间将如上所示:
do shell script "cat </dev/tcp/time.nist.gov/13 | awk 'length($0)>0 {print 20$2,$3}'"
,这将仅返回日期:
do shell script "cat </dev/tcp/time.nist.gov/13 | awk 'length($0)>0 {print 20$2}'"