Google Calendar API iOS快速入门:如何获取当前日期之前的事件
解决QuickstartApp获取历史事件的问题
嘿,这问题其实很好搞定!GTLRDateTime根本不限制只能用当前日期,你只需要传入一个过去的Date对象,就能拉取当前日期之前的事件了,下面给你几个具体的实现方案:
1. 获取N天内的历史事件
如果你想获取最近几天的过往事件,可以用Calendar来计算过去的日期:
// 比如获取7天前的日期 let calendar = Calendar.current // value设为负数就是往前推时间,这里-7代表7天前 let pastDate = calendar.date(byAdding: .day, value: -7, to: Date())! // 将计算好的过去日期赋值给timeMin query.timeMin = GTLRDateTime(date: pastDate)
2. 指定具体的起始日期
如果需要从某个特定日期开始获取事件,可以通过DateComponents构建目标日期:
// 构建2023年5月1日的日期 var dateComponents = DateComponents() dateComponents.year = 2023 dateComponents.month = 5 dateComponents.day = 1 // 转换成Date对象 let specificPastDate = Calendar.current.date(from: dateComponents)! query.timeMin = GTLRDateTime(date: specificPastDate)
3. 获取所有历史事件
要是想拉取账号里所有的历史事件,直接设置一个非常早的起始日期就行,比如Unix纪元的起始点:
// 设置为1970年1月1日,覆盖所有历史事件的时间范围 let earliestDate = Date(timeIntervalSince1970: 0) query.timeMin = GTLRDateTime(date: earliestDate)
额外提示:只获取过去的事件
如果不想查询结果里包含未来事件,可以同时设置timeMax为当前日期,这样查询范围就严格限定在历史区间内了:
query.timeMax = GTLRDateTime(date: Date())
内容的提问来源于stack exchange,提问作者Don Oleksa
相关产品推荐
相关产品推荐

