我有一个字符串数组,我该如何定义它比当前更好?它对我有用,但看起来很奇怪。
var arrTimelineEntry = ["12 am", "1 am", "2 am", "3 am", "4 am", "5 am", "6 am", "7 am","8 am", "9 am", "10 am", "11 am","12 pm", "1 pm", "2 pm", "3 pm", "4 pm", "5 pm", "6 pm", "7 pm", "8 pm", "9 pm", "10 pm", "11 pm"]
以下格式用于不同的语言和语言。
let calendar = Calendar.current
let date = Date() //choose date on which DST never happened
let formatter = DateFormatter()
formatter.dateFormat = DateFormatter.dateFormat(fromTemplate: "jm", options: 0, locale: NSLocale.current)
let dates = (0...23).map { (hour) in
return calendar.date(bySettingHour: hour, minute: 0, second: 0, of: date)!
}
let timeLine = dates.map(formatter.string)
可能您可以使用Date
的extension
整日获取。您也可以根据某些要求轻松自定义它们,并且没有硬编码。
extension Date {
var startOfDay: Date {
return Calendar.current.startOfDay(for: self)
}
static func dayHours() -> [String] {
var hours = [String]()
var today = Date(timeIntervalSince1970: 1492674841).startOfDay
let dateFormatter = DateFormatter()
dateFormatter.locale = NSLocale.current
dateFormatter.dateFormat = "h a"
dateFormatter.amSymbol = "am"
dateFormatter.pmSymbol = "pm"
for _ in 0...23 {
let dateString = dateFormatter.string(from: today )
hours.append(dateString)
today.addTimeInterval(3600)
}
return hours
}
}
用法:
Date.dayHours()