如何确定Java中的区域设置是使用12小时还是24小时?
在Java中,我只想以小时和分钟为单位打印一天中的时间,并希望它根据区域设置在“13:00”和“1:00 PM”之间正确切换。如何执行此操作?使用该类创建给定时间的正确输出 从API开始: 要设置当前区域设置的日期格式,请使用静态factory方法之一:如何确定Java中的区域设置是使用12小时还是24小时?,java,time,locale,Java,Time,Locale,在Java中,我只想以小时和分钟为单位打印一天中的时间,并希望它根据区域设置在“13:00”和“1:00 PM”之间正确切换。如何执行此操作?使用该类创建给定时间的正确输出 从API开始: 要设置当前区域设置的日期格式,请使用静态factory方法之一: myString = DateFormat.getDateInstance().format(myDate); 您只需使用getTimeInstance()方法,并对返回的DateFormat对象调用format()方法,区域设置不会明确指定
myString = DateFormat.getDateInstance().format(myDate);
您只需使用
getTimeInstance()
方法,并对返回的DateFormat对象调用format()
方法,区域设置不会明确指定是首选12小时还是24小时时间格式。相反,特定于语言环境的日期格式由直接定义格式的语言环境处理
- 如果您只是想使用“locale preferred”时间格式,只需调用三个静态方法之一,并使用它返回的任何
DateFormat
- 如果您手中有一个
实例,您可以(如果您准备进行大量编码)调用并解析结果模式,查看它是否使用了12小时或24小时的日期。。。或者两者都没有。您甚至可以调整模式以使用“其他”表单,然后调用以更改格式SimpleDataFormat
public static boolean is24HourLocale() {
String output = SimpleDateFormat.getTimeInstance(DateFormat.SHORT).format(new Date());
if (output.contains(" AM") || output.contains(" PM")) {
return false;
} else {
return true;
}
}
非常感谢你!因为我真的只想打印它
DateFormat.getTimeInstance(DateFormat.SHORT,someLocale)
帮我完成了这个任务。我当然不希望出现这样的情况,我需要知道使用的是什么时间格式:p.如果您有不同的默认区域设置,并且AM/PM标记不同,那么这将不起作用。