我正在制作一个复杂功能,并希望显示" UTC"在复杂化中使用24小时格式的时区时间。
CLKTimeTextProvider可以工作,但它似乎只使用用户喜欢的默认格式,而我需要强制它始终显示24小时的时间。
有什么想法?有没有我看不到的房产?
switch family {
case .UtilitarianLarge:
let template = CLKComplicationTemplateUtilitarianLargeFlat()
template.imageProvider = nil
template.textProvider = CLKTimeTextProvider(date: NSDate(), timeZone: NSTimeZone(name: "UTC"))
return CLKComplicationTimelineEntry(date: date, complicationTemplate: template)
答案 0 :(得分:0)
目前没有CLKTimeTextProvider
属性可以覆盖用户的区域和区域设置。
除了submitting a feature request之外,您可以通过将日期转换为24小时格式化时间来解决此问题,然后使用CLKSimpleTextProvider
let dateFormatter = NSDateFormatter()
let localeFormatString = NSDateFormatter.dateFormatFromTemplate("HH:mm", options: 0, locale: NSLocale.currentLocale())
dateFormatter.dateFormat = localeFormatString
dateFormatter.timeZone = NSTimeZone(abbreviation: "UTC")
template.textProvider = CLKSimpleTextProvider(text: dateFormatter.stringFromDate(NSDate()))
<强>更新强>
根据您的评论,您可以使用从午夜00:00开始计算的CLKRelativeDateStyleTimer
来完成您想要的操作。由于它会计算小时和分钟,因此它会以24小时格式计算。您必须在午夜更新并发症,并在第二天将其重置为00:00。