Swift 3 - 从 String.CharacterView 格式化字符串格式化时间字符串
Posted
技术标签:
【中文标题】Swift 3 - 从 String.CharacterView 格式化字符串格式化时间字符串【英文标题】:Swift 3 - Formatting Time String from String.CharacterView formatted string 【发布时间】:2017-05-22 00:10:18 【问题描述】:我试图弄清楚如何格式化已经使用 String.CharacterView 格式化的字符串。
代码是:
let formattedDate = arrivalTime.characters.suffix(8) //gets the last 8 characters of a JSON outputted string for the time
record.time = String(formattedDate) //sets the characters to a string and then sets that equal to the record class variable time, which displays the string in each table view cell
self.records.append(record)
这会产生类似
的字符串18:41:21
我想弄清楚的是如何获得像
这样的字符串6:41pm
而不是 18:41:21
有人有什么建议吗?谢谢!
【问题讨论】:
【参考方案1】:您可以使用 components(separatedBy: ":") 解析字符串并将元素映射为整数。然后,您可以使用第一个组件(小时)截断除以 12 的余数来格式化结果字符串,并根据其值有条件地添加 am
或 pm
:
let time24h = "18:41:21"
let components = time24h.components(separatedBy: ":").flatMapInt($0)
if components.count > 1
let time12h = String(format: "%d:%02d", components[0] % 12, components[1])
+ (components[0] < 12 ? "am" : "pm") // "6:41pm"
【讨论】:
以上是关于Swift 3 - 从 String.CharacterView 格式化字符串格式化时间字符串的主要内容,如果未能解决你的问题,请参考以下文章