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

如何在Swift中生成包含前7天、后7天共15个Date类型日期的数组

Swift 生成前后7天共15个日期数组的实现方案

不要直接用加减秒数的方式计算日期偏移,会存在夏令时、时区变更导致的误差,推荐使用系统Calendar提供的日期计算API
完整实现代码如下:

func setupDates() -> [Date] {
    var dateArray = [Date]()
    let calendar = Calendar.current
    // 获取7天前的起始日期
    guard let startDate = calendar.date(byAdding: .day, value: -7, to: Date()) else {
        return dateArray
    }
    // 循环生成15个日期
    for i in 0..<15 {
        if let targetDate = calendar.date(byAdding: .day, value: i, to: startDate) {
            dateArray.append(targetDate)
        }
    }
    return dateArray
}

补充说明:

  • 数组的第7位dateArray[7]为当天日期,刚好满足「此前7天+当天+此后7天」的需求
  • 如果需要仅保留日期、忽略时分秒,可以对当前日期先做零点对齐,将代码中的Date()替换为calendar.startOfDay(for: Date())即可

内容的提问来源于stack exchange,提问作者Noah Iarrobino

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 13:36:03