【发布时间】:2020-10-07 17:25:37
【问题描述】:
我正在尝试将我的Date() 格式化为类似于Saturday, June 12th • 5PM - 12PM。我已经能够通过以下DateFormatter() 解决大部分问题:
var date_formatter: DateFormatter {
let formatter = DateFormatter()
formatter.dateFormat = "EEEE, MMMM d • HHa - HHa"
return formatter
}
导致Saturday, June 12 • 5PM - 12PM
我面临的挑战是了解如何添加序数后缀(即 12 -> 12th)。我在NumberFormatter() 上看过一点,但不完全确定如何整合两者。
编辑:最终不得不为5PM - 12PM 逻辑创建两种格式。
这看起来像:
var start_time_formatter: DateFormatter {
let formatter = DateFormatter()
formatter.dateFormat = "EEEE, MMMM d • HHa -"
return formatter
}
var end_time_formatter: DateFormatter {
let formatter = DateFormatter()
formatter.dateFormat = "HHa"
return formatter
}
使用以下内容将其显示在视图中:
Text("\(self.create_event_vm.start_time, formatter: self.start_time_formatter) \(self.create_event_vm.end_time, formatter: self.end_time_formatter)")
我知道这有点古怪,可以使用一些重构,但我希望得到想要的效果,测试,然后重构。
【问题讨论】:
-
我怀疑您是否从 one 日期收到
...5PM - 12PM。您必须从当天计算后缀并动态修改日期格式。 -
对不起,我在输入这个之后才意识到。我编辑了我的帖子以显示我当前的显示方式
5PM - 12PM -
@Bonteq 您需要的是 DateIntervalFormatter。请注意,下午 12 点已经是另一天了,所以您的表述是错误的
标签: swift swiftui dateformatter