以特定时区的24小时格式显示并发症当前时间

时间:2016-03-22 19:27:51

标签: swift watch-os-2 apple-watch-complication

我正在制作一个复杂功能,并希望显示" 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)

1 个答案:

答案 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。