Date 是用于处理时间和日期的核心类,它提供了多种操作时间的便捷方法,包括创建时间、计算时间间隔和格式化日期等。
下面是 Date 类型的常用方法和属性分类介绍:
日期计算
1、addingTimeInterval(_:)
用于在当前 Date 对象的基础上增加或减少秒数。
语法:
let now = Date()
let futureDate = now.addingTimeInterval(3600) // 当前时间加 3600 秒(1 小时)
let pastDate = now.addingTimeInterval(-86400) // 当前时间减 86400 秒(1 天)
2、timeIntervalSince(_:)
返回当前日期与给定日期之间的时间间隔(以秒为单位)。
语法:
let now = Date()
let anotherDate = now.addingTimeInterval(-3600)
let interval = now.timeIntervalSince(anotherDate) // 返回 3600 秒
3、timeIntervalSinceNow
返回当前日期与未来或过去某个时间点之间的秒数。
语法:
let futureDate = Date().addingTimeInterval(3600)
let interval = futureDate.timeIntervalSinceNow // 返回 3600 秒
4、timeIntervalSince1970
返回从 Unix 纪元时间(1970-01-01 00:00:00 UTC)到当前时间的秒数。
常用于时间戳。
语法:
let timestamp = Date().timeIntervalSince1970 // 当前时间的 Unix 时间戳
5、timeIntervalSinceReferenceDate
返回从 Apple 的参考时间(2001-01-01 00:00:00 UTC)到当前时间的秒数。
语法:
let secondsSince2001 = Date().timeIntervalSinceReferenceDate
日期比较
1、compare(_:)
比较两个日期,返回 ComparisonResult 枚举值:
.orderedAscending:当前日期早于给定日期。
.orderedDescending:当前日期晚于给定日期。
.orderedSame:两个日期相同。
语法:
let now = Date()
let futureDate = now.addingTimeInterval(3600)
let result = now.compare(futureDate) // 返回 .orderedAscending
2、比较运算符
Swift 支持直接使用比较运算符对日期进行比较:
语法:
let now = Date()
let futureDate = now.addingTimeInterval(3600)
if now < futureDate {
print("现在时间早于未来时间")
}
日期初始化
1、Date()
创建当前时间的 Date 对象。
语法:
let now = Date() // 当前时间
2、自定义初始化
通过 DateComponents 和 Calendar,可以创建自定义日期:
语法:
var components = DateComponents()
components.year = 2024
components.month = 12
components.day = 25
components.hour = 12
components.minute = 0
let customDate = Calendar.current.date(from: components)
print(customDate) // 可选值,输出 2024-12-25 12:00:00
3、从时间戳初始化
通过时间戳(以秒为单位)创建日期:
语法:
let timestamp: TimeInterval = 1710028800 // 示例时间戳
let date = Date(timeIntervalSince1970: timestamp)
print(date)
日期格式化
1、description
将日期转为默认字符串(调试用)。
语法:
let now = Date()
print(now.description) // 例如:2024-12-14 08:00:00 +0000
2、格式化日期
通过 DateFormatter 格式化日期:
语法:
let formatter = DateFormatter()
formatter.dateStyle = .medium
formatter.timeStyle = .short
let now = Date()
let formattedDate = formatter.string(from: now)
print(formattedDate) // 例如:Dec 14, 2024 at 8:00 AM
日期组件提取
通过 Calendar 提取日期的特定部分(年、月、日、小时等):
语法:
let now = Date()
let calendar = Calendar.current
let year = calendar.component(.year, from: now)
let month = calendar.component(.month, from: now)
let day = calendar.component(.day, from: now)
print("Year: \(year), Month: \(month), Day: \(day)")
总结
以下是 Date 的常用方法和功能总结:
1、时间计算:
addingTimeInterval(_:):增加或减少秒数。
timeIntervalSince(_:) / timeIntervalSinceNow / timeIntervalSince1970:计算时间间隔。
2、时间比较:
compare(_:):返回时间的顺序。
<, >, == 等运算符直接比较日期。
3、自定义初始化:
Date():当前时间。
使用 DateComponents 和 Calendar 创建特定日期。
4、日期格式化:
使用 DateFormatter 格式化日期为字符串。
5、提取组件:
使用 Calendar 提取年、月、日等。