SwiftDate 字符串解析返回的结果减少了 1 天

SwiftDate string parsing returned 1 day less result

我正在尝试将日期字符串解析为 Date class。我为此使用 SwiftDate。但是当我试图解析它时,它返回的时间比字符串中的值少 1 天。以下是一些示例:

let birthString = "1996-10-08"
self.birthday = Date(birthString, format: "yyyy-MM-dd", region: Region.current) 
//Result: self.birthday = 1996-10-07 17:00:00 UTC 

let expiredString = "2019-09-30"
self.membershipExpiredDate = Date(expiredString, format: "yyyy-MM-dd", region: Region.current) 
//Result: self.membershipExpiredDate = 2019-09-29 17:00:00 UTC

如何修复此错误?谢谢

SwiftDate 使用区域,而您将区域设置为 Region.current。日期正确,您可以使用 .timeIntervalSince1970 属性 检查。发生的事情是,当您打印日期(实际上只是一个 TimeInterval,又名 Double,一个 特定时间点,独立于任何日历或时区 )时,它正在打印它的 description 属性,默认时区 UTC(您可以在输出中看到它 17:00:00 UTC)。

要使用您当前的语言环境打印日期,请使用 this 实例方法:

print(date.description(with: Locale.current))