在英语中,时间格式“h:mm a”表示“8:32 am”。在西班牙语中,时间格式“h:mm a”表示“8:32 a”。m、 “有没有一种简单的方法可以让西班牙语看起来像英语?你能在android/java中强制caps中的am/pm格式吗?
e0bqpujr1#
简单的解决方案:指定一个使用大写am和pm的区域设置。例如:
DateTimeFormatter formatter = DateTimeFormatter .ofLocalizedTime(FormatStyle.SHORT) .withLocale(Locale.US); LocalTime time = LocalTime.of(8, 32); String withUpperCaseAmPm = time.format(formatter); System.out.println(withUpperCaseAmPm);
输出为:上午8:32当然,我使用的是java.time,即现代的java日期和时间api。硬解决方案:指定文本 AM 以及 PM 明确地。
AM
PM
Map<Long, String> amPmTexts = new HashMap<>(); amPmTexts.put(0L, "AM"); amPmTexts.put(1L, "PM"); DateTimeFormatter formatter = new DateTimeFormatterBuilder() .appendPattern("h:mm ") .appendText(ChronoField.AMPM_OF_DAY, amPmTexts) .toFormatter();
使用此格式化程序时,输出与以前相同。
java.time在较旧和较新的android设备上都能很好地工作。它至少需要Java6。在Java8和更高版本以及更新的android设备上(api级别26),现代api是内置的。在非android的java6和java7中获得了三个十的backport,即现代类的backport(三个十用于jsr310;请参见底部的链接)。在旧的android上,要么使用desugaring,要么使用android版本的threeten backport。它叫3TENABP。在后一种情况下,请确保从导入日期和时间类 org.threeten.bp 有分装的。
org.threeten.bp
oracle教程:date time解释如何使用java.time。java规范请求(jsr)310,其中 java.time 第一次被描述。三十后港工程 java.time 到Java6和Java7(jsr-310为310)。通过desugaring提供Java8+APIthreetenabp,android版threeten backport问:如何在android项目中使用threetenabp,有非常透彻的解释。
java.time
1条答案
按热度按时间e0bqpujr1#
简单的解决方案:指定一个使用大写am和pm的区域设置。例如:
输出为:
上午8:32
当然,我使用的是java.time,即现代的java日期和时间api。
硬解决方案:指定文本
AM
以及PM
明确地。使用此格式化程序时,输出与以前相同。
问:java.time不需要androidapi级别26吗?
java.time在较旧和较新的android设备上都能很好地工作。它至少需要Java6。
在Java8和更高版本以及更新的android设备上(api级别26),现代api是内置的。
在非android的java6和java7中获得了三个十的backport,即现代类的backport(三个十用于jsr310;请参见底部的链接)。
在旧的android上,要么使用desugaring,要么使用android版本的threeten backport。它叫3TENABP。在后一种情况下,请确保从导入日期和时间类
org.threeten.bp
有分装的。链接
oracle教程:date time解释如何使用java.time。
java规范请求(jsr)310,其中
java.time
第一次被描述。三十后港工程
java.time
到Java6和Java7(jsr-310为310)。通过desugaring提供Java8+API
threetenabp,android版threeten backport
问:如何在android项目中使用threetenabp,有非常透彻的解释。