Swift中的日期处理:Foundation与DateFormatter

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

这是什么以及为什么需要它?

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 就足够了。

推荐