首页 > 解决方案 > AppleScript:时间格式更改+日历事件

问题描述

我正在尝试创建一个脚本来记录我的当前时间和我的完成时间执行特定操作,他们发送了具有相同时间变量的电子邮件并使用此时间变量创建日历事件:

set FinsihDate to (current date) + 10 * hours + 30 * minutes
set startingDate to (current date)


set plistR to {FinsihDate:FinsihDate, starteddate:current date}

tell application "System Events"
    set plistf to make new property list file ¬
        with properties {name:"~/Desktop/MY_Time.plist"}

    set plistf's value to plistR
end tell



## Email
property lastWindowID : missing value
tell application "Mail"
    set windowIDs to id of windows
    if windowIDs does not contain lastWindowID then
        set newMessage to make new outgoing message with properties {subject:"Started early", content:"Hi ..., \n \nI started early today : " & (current date) & ", I will leave at " & FinsihDate & "\n \nKind Regards,\nKevin " & return & return}
        tell newMessage
            set visible to true
            make new to recipient at end of to recipients with properties {name:"Name", address:"@apple.com"}
        end tell
        activate
        set lastWindowID to id of window 1
    else
        tell window id lastWindowID
            set visible to false
            set visible to true
        end tell
        activate
    end if
end tell



set startDate to date (current date)
set endDate to date FinsihDate

tell application "Calendar"
    tell (first calendar whose name is "calendar")
        make new event at end of events with properties {summary:"Work", start date:startDate, end date:endDate, description:"ITS Fraud Prevention", location:"Apple"}
    end tell
end tell
  1. 时间格式

    电子邮件上的时间格式是“2018 年 6 月 4 日星期一 14:25:57”,而我只想要 14:25

我试过这个:

set myTime to (time string of (current date)) + 10 * hours + 30 * minutes

结果:错误“无法将 \"14:27:02\" 转换为类型号。” 数字 -1700 从“14:27:02”到数字

  1. 日历

创建日历事件时出现此错误

错误“无法获取日期(日期\“2018 年 6 月 4 日星期一 14:29:34\”)。” 编号 -1728 从日期(日期“2018 年 6 月 4 日星期一 14:29:34”)

标签: datecalendarapplescript

解决方案


感谢您逐项列出您遇到并希望修复的个别错误。这让我更容易阅读这个问题并决定这是我想要回答的问题,因为我实际上根本不需要测试你的脚本,因为我可以立即看到问题所在:

① 你的括号放错地方了。改变这个:

set myTime to (time string of (current date)) + 10 * hours + 30 * minutes

对此:

set myTime to time string of ((current date) + 10 * hours + 30 * minutes)

② 错误表明你试图取一个 type 的变量,date然后再次声明为 type date。AppleScript 不喜欢这样。

更改这两行:

set startDate to date (current date)
set endDate to date FinsihDate

对此:

set startDate to (current date)
set endDate to FinsihDate

我还没有测试脚本的其余部分。

PS你拼错了你的变量名FinsihDate(我认为这是FinishDate)。但是,它在整个脚本中始终拼写错误,因此没有任何实际区别。


推荐阅读