首页 > 解决方案 > Swift - 如何创建一个只包含时间的日期对象

问题描述

我试图创建一个仅包含午夜后 1 秒时间的日期对象。

我相信以下应该有效,但它只是不断返回nil

let dateTime = Date()
        
        let timeFormatter = DateFormatter()
        timeFormatter.dateFormat = "HH:mm:ss"
        let time = timeFormatter.date(from: "00:00:01")
        print("Time: \(time!)")

有人可以告诉我我做错了什么!

谢谢

标签: swiftdatedatetime

解决方案


算一下Calendar,这更可靠,dateTime无论如何您都没有使用当前日期( )。

let midnight = Calendar.current.startOfDay(for: Date())
let oneSecondAfterMidnight = Calendar.current.date(byAdding: .second, value: 1, to: midnight)

即使由于夏令时更改不存在午夜,这也有效。


推荐阅读