【问题标题】:timepicker: when to choose 24 or am/pm modestimepicker:何时选择 24 或 am/pm 模式
【发布时间】:2011-08-04 11:07:40
【问题描述】:

我的应用中有几个时间选择器。

在我的国家(西班牙),我们习惯于以 24 小时模式显示时间……但在其他国家/地区习惯于上午/下午。

我知道如何将 Timepicker 设置为 24 点或上午/下午模式... 但是,根据设备区域设置或国家/地区,显示 am/pm 或 24 的最佳方法是什么?我怎么知道是选择一种模式还是另一种模式?

非常感谢

(对不起我的英语不好)

【问题讨论】:

  • 同上 wonder.mice 所说的。在 android.text.format.DateFormat.is24HourFormat(context) 中为您完成了一些繁琐但必要的检查。

标签: android


【解决方案1】:

使用 android.text.format.DateFormat 中的 DateFormat: http://developer.android.com/reference/android/text/format/DateFormat.html

从源代码 (frameworks/base/core/java/android/text/format/DateFormat.java) 中可以看出,函数 DateFormat.is24HourFormat() 不仅仅是从 Settings.System 请求 TIME_12_24。

据我了解 DateFormat.is24HourFormat() 是获取用户时间格式的更可靠方法。例如,因为 Settings.System.getString() 可以为 TIME_12_24 返回 null(从 DateFormat.java 中可以看出)。

【讨论】:

    【解决方案2】:

    有几种方法可以做到这一点,其中第一种是仅使用设备设置,从而让用户做出决定,但请注意在某些情况下可能会返回空值 因此不那么可靠;

    String clockType = android.provider.Settings.System.getString(context.getContentResolver(), android.provider.Settings.System.TIME_12_24);
    

    一个更好的解决方案由 wonder.mice 给出,它使用:

    boolean is24HourFormat = DateFormat.is24HourFormat();
    

    另请参阅参考页面:http://developer.android.com/reference/android/text/format/DateFormat.html#is24HourFormat(android.content.Context)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-09
      • 1970-01-01
      • 2010-09-26
      相关资源
      最近更新 更多