You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apple Script获取Mac通讯录联系人生日报错的解决方法

解决AppleScript获取通讯录生日的类型错误

你的脚本出错是因为birthday属性返回的是包含日期信息的对象,而非直接可转换为字符串的日期值,强制转换会触发类型不匹配错误。以下是修正后的解决方案:

基础修正版本

tell application "Contacts"
    set firstContact to first person
    set contactName to name of firstContact
    -- 通过date属性提取实际生日日期
    set contactBirthday to date of birthday of firstContact
end tell

-- 用系统短日期格式格式化显示
set formattedBirthday to short date string of contactBirthday
display dialog "Name: " & contactName & return & "Birthday: " & formattedBirthday

带容错处理的版本(兼容无生日的联系人)

tell application "Contacts"
    set firstContact to first person
    set contactName to name of firstContact
    -- 先检查联系人是否设置了生日
    if birthday of firstContact exists then
        set contactBirthday to date of birthday of firstContact
        set formattedBirthday to short date string of contactBirthday
    else
        set formattedBirthday to "未设置生日"
    end if
end tell

display dialog "Name: " & contactName & return & "Birthday: " & formattedBirthday

关键说明

  • birthday of person返回的是生日对象,必须通过date of birthday提取其中的日期数据。
  • 使用short date string可根据系统区域设置自动格式化日期,避免直接转字符串时的类型冲突。

内容的提问来源于stack exchange,提问作者Ionică Bizău

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 23:15:54