DateFormatter 不返回“HHmmss”的日期

swift

1个回答

写回答

lszhong1988

2025-06-17 11:15

+ 关注

Swift
Swift

使用 DateFormatter 格式化日期是开发中常见的需求之一。但有时候我们可能只需要日期的部分,而不需要具体的时间。比如,我们可能只需要日期的年份、月份和日。那么如何排除“HH:mm:ss”这部分呢?

排除时间部分的需求

在开发中,我们经常会遇到需要格式化日期的情况。我们可以使用 DateFormatter 类来实现这一需求。DateFormatter 是 Foundation 框架中的一个类,它提供了将日期转换为特定格式的功能。

我们可以通过设置 DateFormatter 的 dateFormat 属性来指定日期的格式。默认情况下,dateFormat 的值为 "yyyy-MM-dd HH:mm:ss",即包含年、月、日、时、分和秒。如果我们只需要日期的部分,而不需要具体的时间,就需要将时间部分排除在外。

排除时间部分的方法

要排除时间部分,我们可以使用 DateFormatter 的 setLocalizedDateFormatFromTemplate: 方法。这个方法会根据指定的本地化模板来设置 dateFormat 属性的值。本地化模板可以根据不同的语言和地区来自动适配日期格式。

为了只保留日期的部分,我们可以使用 "yyyy-MM-dd" 这个本地化模板。这个模板会将时、分和秒部分去掉,只保留年、月和日。

下面是一个示例代码:

Swift

let dateFormatter = DateFormatter()

dateFormatter.setLocalizedDateFormatFromTemplate("yyyy-MM-dd")

let date = Date()

let formattedDate = dateFormatter.string(from: date)

print(formattedDate)

在上面的代码中,我们首先创建了一个 DateFormatter 对象,并且将其 dateFormat 属性设置为 "yyyy-MM-dd"。然后,我们获取当前的日期,并使用 dateFormatter.string(from:) 方法将其格式化为指定的格式。最后,我们将格式化后的日期打印出来。

案例代码解析

上面的代码中,我们使用了 DateFormatter 类的 setLocalizedDateFormatFromTemplate: 方法来排除日期中的时间部分。这个方法会根据指定的本地化模板来设置 dateFormat 属性的值。

在这个案例中,我们使用了 "yyyy-MM-dd" 这个本地化模板,它表示只保留年、月和日部分,而将时、分和秒部分去掉。

然后,我们使用 dateFormatter.string(from:) 方法将日期格式化为指定的格式。这个方法会返回一个字符串,表示格式化后的日期。

最后,我们将格式化后的日期打印出来,以便查看结果。

这个案例代码非常简单,但却展示了如何使用 DateFormatter 来排除日期中的时间部分。通过设置合适的本地化模板,我们可以灵活地控制日期的格式化结果。

举报有用(4分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号