Android根据用户喜好获取OS时钟

时间:2014-02-18 18:42:05

标签: android

我偶然发现了一些我从未想过的东西!对于某些日志记录目的,我的Android应用程序中有一个已定位的时间戳,可通过以下代码片段来实现

String timeStamp = DateFormat.getDateTimeInstance().format(Calendar.getInstance().getTime());

这很好用,并根据设备区域设置给我一个时间戳。 然而,我想得到的是一个本地化的时间戳只包含小时:分钟,一些语言环境有12小时时钟,其他时间有24小时。在Android或java中是否有一些默认功能,或者我必须找出设备区域设置并根据使用的时钟格式做出决定

更新

好吧,我的问题似乎不清楚,我同意这一点。 我想要实现的是将时间显示在通知栏中。根据用户设置,以24或12小时格式显示的时间。 如果我能以某种方式通过Android中的som功能获得它,而不是现在的时间和格式化等等,这将是方便的,但我没有找到任何。请参阅我自己的答案,了解目前是如何解决的。

同时删除Java标记,因为此问题特定于Android。

1 个答案:

答案 0 :(得分:3)

我回答我自己的问题。我做了一个方便的方法来完成这个,不完全是我想要的,但它完成了工作。

private String getLocalizedHHMMStamp(Context context) {
    Date now = Calendar.getInstance().getTime()

    // Different formatters for 12 and 24 hour timestamps
    SimpleDateFormat formatter24 = new SimpleDateFormat("HH:mm");
    SimpleDateFormat formatter12 = new SimpleDateFormat("K:mm a");

    // According to users preferences the OS clock is displayed in 24 hour format
    if (DateFormat.is24HourFormat(context)) {
        return formatter24.format(now);
    }

    return formatter12.format(now);
}

使用导入:

android.text.format.*