这是什么以及为什么需要它?
Swift 是 Apple 为 iOS、macOS、watchOS 和 tvOS 推出的现代编程语言。日期处理是移动和桌面开发中的关键任务之一:从聊天中的时间显示到应用中的截止日期计算。Swift 没有单独的日期库——所有功能都内置于 Foundation 框架中。它提供了 Date、DateFormatter、Calendar 和 DateComponents 类,这些类允许您创建、格式化、比较和操作日期。
如何安装?
Foundation 是 Swift 标准库的一部分,因此无需安装。只需在您的文件中导入模块即可:import Foundation。在 iOS/macOS 项目(通过 Xcode)中使用日期时,不需要任何额外的依赖项。
主要功能
- 创建日期:
Date()— 当前日期和时间;Date(timeIntervalSinceNow:)— N 秒后的日期。 - 格式化:
DateFormatter— 将日期转换为字符串(本地化输出)以及反向转换。 - 日期组件:
Calendar.current.dateComponents([.year, .month, .day], from: date)— 提取年、月、日。 - 比较:运算符
==、<、>,以及compare()。 - 操作:
Calendar.current.date(byAdding: .day, value: 7, to: date)— 增加 7 天。
Swift(iOS/macOS)代码示例
import Foundation
// 当前日期let now = Date()print("当前时间:\\(now)")
// 格式化为本地化字符串let formatter = DateFormatter()formatter.dateStyle = .longformatter.timeStyle = .shortformatter.locale = Locale(identifier: "zh_CN")let formatted = formatter.string(from: now)print("格式化日期:\\(formatted)")
// 提取星期几let calendar = Calendar.currentlet weekday = calendar.component(.weekday, from: now)print("星期几(1=星期日):\\(weekday)")
// 增加 3 天if let futureDate = calendar.date(byAdding: .day, value: 3, to: now) { print("3 天后:\\(formatter.string(from: futureDate))")}
// 解析字符串formatter.dateFormat = "yyyy-MM-dd"if let parsedDate = formatter.date(from: "2025-12-31") { print("解析结果:\\(parsedDate)")}何时使用?
在 Swift 中处理日期时,始终使用 Foundation 内置工具:在 UI 中显示时间、计算日期差异、创建日历、提醒、定时器、事件日志。对于复杂场景(例如,处理时区或重复事件),组合使用 DateComponents 和 Calendar。存在替代的第三方库(例如 SwiftDate),但对于大多数项目来说,Foundation 就足够了。