String timeStamp = DateFormat.getDateTimeInstance().format(Calendar.getInstance().getTime());
这很好用,并根据设备区域设置给我一个时间戳。 然而,我想得到的是一个本地化的时间戳只包含小时:分钟,一些语言环境有12小时时钟,其他时间有24小时。在Android或java中是否有一些默认功能,或者我必须找出设备区域设置并根据使用的时钟格式做出决定
更新
好吧,我的问题似乎不清楚,我同意这一点。 我想要实现的是将时间显示在通知栏中。根据用户设置,以24或12小时格式显示的时间。 如果我能以某种方式通过Android中的som功能获得它,而不是现在的时间和格式化等等,这将是方便的,但我没有找到任何。请参阅我自己的答案,了解目前是如何解决的。同时删除Java标记,因为此问题特定于Android。
答案 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.*