如何在 Swift 中建立日期物件?
在 Swift 中,可以使用 Date 類來處理各種日期格式。您可以使用 Date 類來操作和格式化日期物件。還有其他支援的類,如 DateComponents、DateFormatter 等,可以幫助您將日期物件從一種型別格式化成另一種型別。讓我們透過一些示例來學習關於日期的知識。
在 Swift 中,您可以使用 Date() 初始化器建立一個 Date 物件,它返回當前日期和時間 -
let currentDate = Date()
從字串表示形式建立日期物件
您可以使用 DateFormatter 類從日期的字串表示形式建立一個 Date 物件。
步驟 1 - 建立包含日期和時間字串表示形式的 dateString 變數,格式為 ISO 8601 格式,並帶有時區偏移量。
步驟 2 - 使用 dateFormat 屬性建立 dateFormatter 物件,使其與輸入字串的格式相匹配。
步驟 3 - 然後使用 date(from:) 方法將字串轉換為 Date 物件。
步驟 4 - 最後,.date(from:) 方法返回一個可選型別。我們可以使用可選繫結安全地解包該值。
示例
import Foundation
let dateString = "2023-03-21T15:30:00+00:00"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZZ"
if let dateObject = dateFormatter.date(from: dateString) {
print("Date string: \(dateString)")
print("Date object: \(dateObject)")
}
輸出
Date string: 2023-03-21T15:30:00+00:00 Date object: 2023-03-21 15:30:00 +0000
從時間戳建立日期物件
您還可以從時間戳建立 Date 物件,時間戳表示自 1970 年 1 月 1 日(也稱為 Unix 紀元)以來的秒數或毫秒數。
示例
import Foundation
let timestampInSeconds = 1647965400
let dateFromTimestampInSeconds = Date(timeIntervalSince1970: TimeInterval(timestampInSeconds))
print("timestampInSeconds: \(timestampInSeconds)")
print("Date object: \(dateFromTimestampInSeconds)")
輸出
timestampInSeconds: 1647965400 Date object: 2022-03-22 16:10:00 +0000
在此示例中,timestampInSeconds 變數包含一個 Unix 時間戳,表示 2022-03-22 16:10:00 +0000。使用帶有 timeIntervalSince1970 引數的 Date 初始化器從時間戳建立 Date 物件。
透過新增或減去時間間隔建立日期物件
您還可以透過向現有 Date 物件新增或減去時間間隔來建立 Date 物件。
步驟 1 - 建立包含當前日期和時間的 currentDate 變數。
步驟 2 - 使用 addingTimeInterval(_:) 方法透過新增或減去以秒為單位的時間間隔來建立新的 Date 物件。
步驟 3 - 常量 86400 表示一天中的秒數,常量 -3600 表示一小時中的秒數(使用負號表示減去間隔)。
步驟 4 - 將生成的 Date 物件分別儲存在 oneDayLater 和 oneHourAgo 變數中。
示例
import Foundation
let currentDate = Date()
// Add 1 day to the current date
let oneDayLater = currentDate.addingTimeInterval(86400)
// Subtract 1 hour from the current date
let oneHourAgo = currentDate.addingTimeInterval(-3600)
print("Current date: \(currentDate)")
print("Date one day later: \(oneDayLater)")
print("Date one hour ago: \(oneHourAgo)")
輸出
Current date: 2023-04-04 06:10:43 +0000 Date one day later: 2023-04-05 06:10:43 +0000 Date one hour ago: 2023-04-04 05:10:43 +0000
將日期物件轉換為字串
您可以使用 DateFormatter 將 Date 物件轉換為 String。
步驟 1 - 建立使用當前日期和時間初始化的 date 變數。
步驟 2 - 使用指定所需日期和時間格式的格式字串初始化 dateFormatter 變數。
步驟 3 - 然後使用 DateFormatter 類的 string(from:) 方法將 Date 物件轉換為 String。
示例
import Foundation
let date = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd-MM-yyyy"
let dateString = dateFormatter.string(from: date)
print("Date in string format: \(dateString)")
輸出
Date in string format: 04-04-2023
將字串轉換為日期物件
您可以使用 DateFormatter 將 String 轉換為 Date 物件。
步驟 1 - 建立使用表示日期和時間的字串初始化的 dateString 變數。
步驟 2 - 使用與 dateString 格式匹配的格式字串初始化 dateFormatter 變數。
步驟 3 - 然後使用 DateFormatter 類的 date(from:) 方法將 String 轉換為 Date 物件。
示例
import Foundation
let dateString = "2023-03-21"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
if let date = dateFormatter.date(from: dateString) {
print("Date object: \(date)")
}
輸出
Date object: 2023-03-20 18:30:00 +0000
將日期物件轉換為時間間隔
您可以將 Date 物件轉換為 TimeInterval,TimeInterval 表示自 1970 年 1 月 1 日 00:00:00 UTC 以來的秒數。
步驟 1 - 建立使用當前日期和時間初始化的 date 變數。
步驟 2 - 然後使用 Date 類的 timeIntervalSince1970 屬性將 Date 物件轉換為 TimeInterval。
示例
import Foundation
let date = Date()
let timestamp = date.timeIntervalSince1970
print("Timestamp: \(timestamp)")
輸出
Timestamp: 1680588818.952563
結論
總之,在 Swift 中建立日期物件可以透過多種方式完成,具體取決於您擁有的資料和所需的輸出。您可以根據字串、單個元件、DateComponents 物件或 TimeInterval 生成 Date 物件。根據您擁有的資料選擇合適的方法至關重要,並且要注意處理日期和時間時可能出現的陷阱,例如時區和夏令時。通過了解在 Swift 中建立 Date 物件的不同方法,您可以更輕鬆地在應用程式中處理日期和時間。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP