Android DateFormat的行为不可预测
在我的应用程序的UI中,我将时间戳格式化如下:Android DateFormat的行为不可预测,android,locale,time-format,Android,Locale,Time Format,在我的应用程序的UI中,我将时间戳格式化如下: DateFormat format = DateFormat.getTimeInstance(DateFormat.SHORT); updated.setText(format.format(message.getTimestamp())); (如果重要的是,每次需要格式化时间戳时,我都会获取实例。) 然而,行为有些不可预测:我有两台设备,一台运行安卓7.1.2,另一台运行安卓4.4.4。两者都有相同的设置:显示语言为英语(美国),键盘布局为立陶
DateFormat format = DateFormat.getTimeInstance(DateFormat.SHORT);
updated.setText(format.format(message.getTimestamp()));
(如果重要的是,每次需要格式化时间戳时,我都会获取实例。)
然而,行为有些不可预测:我有两台设备,一台运行安卓7.1.2,另一台运行安卓4.4.4。两者都有相同的设置:显示语言为英语(美国),键盘布局为立陶宛语,时间格式为24小时
在7.1.2设备上,时间戳通常按预期显示(例如19:42
)。但是,它们偶尔显示为7:42 pm
。当这种情况发生时,它在所有时间戳上都是一致的,也就是说,我从来没有混合过格式。此外,当设备刚刚启动时,也会出现这种情况
4.4.4设备始终显示错误的时间格式,即7:42 pm
我怎样才能有时间以用户在Android系统设置中选择的相同格式持续显示?令人讨厌。在这两种情况下,
Locale.getDefault(Locale.Category.FORMAT)
返回什么DateFormat.getTimeInstance(int)
使用此选项。按照我的阅读方式,getTimeInstance()
不应遵守手机上的24小时设置。但是,如果默认区域设置意味着时间格式为24小时制,则应遵守此规定。烦人。在这两种情况下,Locale.getDefault(Locale.Category.FORMAT)
返回什么DateFormat.getTimeInstance(int)
使用此选项。按照我的阅读方式,getTimeInstance()
不应遵守手机上的24小时设置。但是,如果默认区域设置意味着时间格式为24小时制,则应遵守这一点。