【发布时间】:2020-12-23 14:52:29
【问题描述】:
我正在尝试使用 DateFormatter 在 Swift 中格式化 Date 对象。我正在从 UIDatePicker 中获取格式为 2020-09-04T10:19:26+0000 的 Date 对象,我想将其重新格式化为 2020-09-04 10:19。
据我了解,DateFormatter 只能使用 date(from: String) 方法从字符串创建 Date 对象,或者使用 string(from: Date) 从 Date 对象创建字符串。因此,对于我看似简单的用例,我需要两个 DateFormatter:一个用于将我的原始日期转换为字符串,另一个用于将该字符串格式化为我想要的格式并将其作为 Date 对象返回。
这真的是在 Swift 中重新格式化 Date 对象的“智能”方式,还是我遗漏了什么?
编辑:
我正在将项目(可能有截止日期)保存到数据库中。稍后,我计划根据截止日期从数据库中读取特定项目。 UIDatePicker 返回一个未格式化的 Date 对象(带有秒数、偏移量等),但我只需要日期、小时和分钟(精确到 15 分钟的间隔)。
【问题讨论】:
-
日期数据类型并不意味着要重新格式化,因为代表一个时间点,并且是通用的,所以Date对象总是格式化好,你需要使用一种或另一种日期格式,具体取决于什么格式您要显示的日期
-
Date 对象没有格式,它只是保存日期和时间的数据。将 DatePicker 中的 Date 对象保留为 Date ,直到需要在 UI 中显示它,然后使用格式化程序将其格式化为字符串
-
你打算如何使用这个“重新格式化的日期”?这将是一个很好的答案。
-
@RomanRyzhiy 在这种情况下重新格式化日期是没有意义的。为了向 OP 澄清,您在执行
print或在调试器中查看日期对象时获得的格式只是使用默认格式格式化的日期。 -
@JoakimDanielson 我同意你的观点,但让我们得到 OP 的答案。
标签: ios swift dateformatter