如何根据设备区域设置使用时间缩写格式化 LocalTime?
How to format LocalTime with time-of-day abbreviation depending on device locale?
根据设备显示 LocalTime
值的最佳方式是什么?美国是唯一一个专门使用 AM/PM 时间缩写的国家,但出于某种原因,每当我的设备区域设置设置为美国时,缩写都不会出现。
美国
2:30上午/2:30下午
世界其他地方
02:30 / 14:30
当前代码
myTV.text = LocalTime.of(2, 30) + " " + LocalTime.of(14, 30)
当前结果
2:30 14:30
您需要明确设置时间格式。使用 DateTimeFormatter.ofLocalizedTime
.
DateTimeFormatter localizedTimeFormatter
= DateTimeFormatter.ofLocalizedTime(FormatStyle.SHORT);
LocalTime begin = LocalTime.of(2, 30);
LocalTime end = LocalTime.of(14, 30);
String text = begin.format(localizedTimeFormatter) + ' ' + end.format(localizedTimeFormatter);
System.out.println(text);
抱歉,我只能写 Java 代码。当我 运行 桌面上的代码 Java 9 将默认语言环境设置为美国时,输出为:
2:30 AM 2:30 PM
其他语言环境的输出:
- 加拿大:
2:30 AM 2:30 PM
- 英国或 F运行ce:
02:30 14:30
根据设备显示 LocalTime
值的最佳方式是什么?美国是唯一一个专门使用 AM/PM 时间缩写的国家,但出于某种原因,每当我的设备区域设置设置为美国时,缩写都不会出现。
美国
2:30上午/2:30下午
世界其他地方
02:30 / 14:30
当前代码
myTV.text = LocalTime.of(2, 30) + " " + LocalTime.of(14, 30)
当前结果
2:30 14:30
您需要明确设置时间格式。使用 DateTimeFormatter.ofLocalizedTime
.
DateTimeFormatter localizedTimeFormatter
= DateTimeFormatter.ofLocalizedTime(FormatStyle.SHORT);
LocalTime begin = LocalTime.of(2, 30);
LocalTime end = LocalTime.of(14, 30);
String text = begin.format(localizedTimeFormatter) + ' ' + end.format(localizedTimeFormatter);
System.out.println(text);
抱歉,我只能写 Java 代码。当我 运行 桌面上的代码 Java 9 将默认语言环境设置为美国时,输出为:
2:30 AM 2:30 PM
其他语言环境的输出:
- 加拿大:
2:30 AM 2:30 PM
- 英国或 F运行ce:
02:30 14:30