Swift Date类型的常用方法和属性分析
Swift Date类型的常用方法和属性分析

Swift Date类型的常用方法和属性分析

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():当前时间。

使用 DateComponentsCalendar 创建特定日期。

4、日期格式化

使用 DateFormatter 格式化日期为字符串。

5、提取组件

使用 Calendar 提取年、月、日等。

如果您认为这篇文章给您带来了帮助,您可以在此通过支付宝或者微信打赏网站开放者。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注