以 24 小时格式显示特定时区的并发症当前时间
Display complication current time in 24 hour format for specific timezone
我正在制作复杂功能,并希望在复杂功能中使用 24 小时格式显示 "UTC" 时区时间。
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)
目前没有 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。
我正在制作复杂功能,并希望在复杂功能中使用 24 小时格式显示 "UTC" 时区时间。
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)
目前没有 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。