簡體   English   中英

來自 Calendar.dateComponents 的日期在 Swift 中返回 nil

[英]Date from Calendar.dateComponents returning nil in Swift

我正在嘗試創建一個包含日、月和年的Date對象,但 Calendar 的功能返回nil

let calendar = Calendar.current
let date = calendar.dateComponents([.day,.month,.year], from: Date()).date! // <- nil

如何僅使用日、月和年創建Date對象?

作為補充rmaddy的答案,為什么你的代碼返回nil的是,你嘗試轉換DateComponentsDate而沒有指定Calendar

如果該轉換是使用日歷方法完成的

let calendar = Calendar.current
let components = calendar.dateComponents([.day, .month, .year], from: Date())
let date = calendar.date(from: components)

或者如果您將日歷添加到日期組​​件

let calendar = Calendar.current
let date = calendar.dateComponents([.day, .month, .year, .calendar], from: Date()).date

然后你會得到預期的結果。

如果您想去除日期的時間部分(將其設置為午夜),則可以使用Calendar startOfDay

let date = Calendar.current.startOfDay(for: Date())

這將為您提供當前日期的當地時間午夜。

如果你想在當前日期為不同的時區的午夜,創建一個新的Calendar實例,並設置其timeZone需要。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM