我正在编写一个单元测试,以检查从日期到字符串然后返回的转换是否成功。
我通过以下方式将其转换为字符串:
func convertDateToString(date: Date) -> String {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
return dateFormatter.string(from: date)
}
并通过以下方式将其转换回:
func convertStringToDate(string: String) -> Date {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
return dateFormatter.date(from: string)!
}
如果您尝试在转换前的日期和转换后的日期使用Equatable协议,则说明它们不相同。但是,如果将日期转换前后都转换为字符串并进行比较,则它们是相等的。这就是我在前后日期运行XCAssertEqual时的内容:
XCTAssertEqual failed: ("2020-01-22 19:35:40 +0000") is not equal to ("2020-01-22 19:35:40 +0000")
看起来和我完全一样。我什至尝试将转换前的日期转换为字符串,然后返回以检查日期是否相等,但仍然不相同
那里的问题Date
是存储为FloatingPoint
值(timeIntervalSinceReferenceDate)。有你的转换时被丢弃有小数秒Date
至String
再换Date
。看一下帖子。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句