-1

我需要一些 AppleScript 代码来访问网站 ( https://www.time.gov/ ) 并返回日期。我几乎没有编写 AppleScript 代码的经验,并且很难弄清楚如何去做。

一点上下文:AppleScript 代码将在 Excel 工作簿、VBA 代码中使用。AppleScript 代码分配给一个字符串变量,然后执行。这是一个如何工作的简单示例。

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

就我而言,我将函数的类型设为字符串(或者可能是日期),它会返回 AppleScript 代码从网站返回的日期。如果有人能告诉我 AppleScript 代码需要什么,将不胜感激。

4

1 回答 1

1

抓取(即通过读取网站的文本或源代码)不是获取日期和时间信息的理想方法,而且您选择的网站特别糟糕,因为它通过不断写入和更新内容的 JavaScript 显示实时时间页面,因此页面的实际源代码实际上不包含任何可读的日期或时间信息。

从 Internet 检索时间的更常规方法是从时间服务器中进行。 time.gov有一个 at 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}'"
于 2019-06-07T06:27:35.473 回答