【问题标题】:How to define which is (24/12) hour format on device?如何定义设备上的(24/12)小时格式?
【发布时间】:2013-07-08 13:44:06
【问题描述】:

如何获取有关用户偏好哪种时间格式的信息? 是[application instace].prefferedTimeFormat 之类的吗?

【问题讨论】:

  • 我相信NSDateFormatter automatically 会照顾到这种偏好。除非您出于其他原因需要阅读此设置,否则只需使用 NSDateFormatter 在您的 UI 中显示日期字符串。
  • 有几个方法没有使用任何 NSDateFormatter。在里面,我想知道 iPhone 设置中用户设置的 whitch 格式(首选)。我知道在使用日期和时间时不使用 NSDateFormatter 是不好的,但我没有任何重构这种方法的愿望。只知道用户设置。

标签: ios locale date-format


【解决方案1】:

这更像是一个黑客,你可以试试这个。如果您使用NSDateFormatterMediumSytle,如果用户已开启 24 小时格式,则 dateFormat 将为 H:mm:ss,如果未开启,则格式为 h:mm:ss a。

如果您只想根据用户偏好设置格式,只需将日期和时间的样式设置为格式化程序。它会处理剩下的事情。

- (BOOL)is24HourFormat
{
    NSDateFormatter *dateFormatter = [NSDateFormatter new];
    [dateFormatter setTimeStyle:NSDateFormatterMediumStyle];
    return [dateFormatter.dateFormat isEqualToString:@"H:mm:ss"];
}

【讨论】:

  • 一切正常。多谢。但是从设置中这个选项真的没有任何吸气剂吗?这意味着你总是必须使用 NSDateFormatter。但是,如果服务器返回一个具有 24 小时格式时间的 NSString 并且如果我需要它,我可以在设备上本地更改它..
  • @EvgeniyS 是的,要更改 dateFormats,您总是需要使用 NSDateFormatter。如果您从服务器接收 dateString,将该格式设置为 dateFormatter,形成日期,然后将日期转换为您想要的 dateFormat。我已经给出了详细的post,你可能会发现它很有用。
猜你喜欢
  • 1970-01-01
  • 2011-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-11
  • 2020-12-15
相关资源
最近更新 更多