Swift为什么将日期对象转换为字符串并返回后,它的(等于)日期对象不相等?

AestusLabs

我正在编写一个单元测试,以检查从日期到字符串然后返回的转换是否成功。

我通过以下方式将其转换为字符串:

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)。有你的转换时被丢弃有小数秒DateString再换Date看一下帖子

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么在 Swift 中将日期从字符串对象转换为日期对象始终为零

为什么这些日期时间对象的时区不相等?

将日期字符串转换为日期对象

为什么将单个字符和“单个字符字符串”转换为long(.toLong())时不相等

为什么这些字符串不相等?

这些字符串为什么不相等?

为什么这些字符串不相等

Pandas 将日期对象列表转换为字符串

将日期字符串转换为Date对象

Javascript将日期字符串转换为对象

将字符串转换为日期时间对象

将字符串日期转换为对象

将字符串转换为数组中的日期对象

将日期字符串转换为Date对象

将日期字符串转换为Date对象

Java将字符串转换为日期时间对象

将哈希字符串转换为日期对象 ruby

为什么这些对象不相等?

为什么从工作线程将日期对象作为消息发送时将其转换为字符串?

当字符串不相等时,为什么-[NSString compare:options:]返回true?

将日期转换为字符串后填写日期

python返回等于字符串实际上不相等的地方吗?

Swift 将日期字符串转换为日期

如何将字符串日期时间范围转换为JavaScript日期对象?

如何将日期字符串转换为日期或日历对象?

Unity C#以所需的日期时间格式将日期字符串转换为datetime对象

将字符串中的 2 位日期年份转换为日期对象

将日期对象转换为 TZ 格式的日期字符串 javascript

AngularJS / javascript将日期字符串转换为日期对象