您可以格式化西班牙语时间字符串(Java)以强制AM/PM使用caps吗?
在英语中,时间格式“h:MMA”表示“上午8:32”。在西班牙语中,时间格式“h:MMA”表示“上午8:32”。有没有一种简单的方法可以将西班牙语的格式设置为与英语相似?您能否在Android/Java中强制使用大写AM/PM格式?简易解决方案:指定使用大写AM和PM的区域设置。例如:您可以格式化西班牙语时间字符串(Java)以强制AM/PM使用caps吗?,java,android,datetime,time-format,Java,Android,Datetime,Time Format,在英语中,时间格式“h:MMA”表示“上午8:32”。在西班牙语中,时间格式“h:MMA”表示“上午8:32”。有没有一种简单的方法可以将西班牙语的格式设置为与英语相似?您能否在Android/Java中强制使用大写AM/PM格式?简易解决方案:指定使用大写AM和PM的区域设置。例如: DateTimeFormatter formatter = DateTimeFormatter .ofLocalizedTime(FormatStyle.SHORT)
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
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();
Map-amPmTexts=newhashmap();
amPmTexts.put(0L,“AM”);
电流输出(1L,“PM”);
DateTimeFormatter formatter=新的DateTimeFormatterBuilder()
.附录模式(“h:mm”)
.appendText(ChronoField.AMPM_OF_DAY,amPmTexts)
.toFormatter();
使用此格式化程序时,输出与以前相同
问:java.time不需要Android API级别26吗?
time在较旧和较新的Android设备上都能很好地工作。它至少需要Java6
- 在Java8和更高版本以及更新的Android设备上(API级别26),现代API是内置的
- 在非androidjava6和7中,获取三个后端口,即现代类的后端口(三个十用于jsr310;请参见底部的链接)
- 在较旧的Android上,可以使用desugaring或Android版本的ThreeTen Backport。它叫ThreeTenABP。在后一种情况下,请确保使用子包从
导入日期和时间类org.threeten.bp
- 解释如何使用java.time
- ,其中首先描述了
java.time
- ,java.time的后端口到Java6和Java7(JSR-310为三十)
- ,Android版Three Ten Backport
- ,解释得非常透彻
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
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();
Map-amPmTexts=newhashmap();
amPmTexts.put(0L,“AM”);
电流输出(1L,“PM”);
DateTimeFormatter formatter=新的DateTimeFormatterBuilder()
.附录模式(“h:mm”)
.appendText(ChronoField.AMPM_OF_DAY,amPmTexts)
.toFormatter();
使用此格式化程序时,输出与以前相同
问:java.time不需要Android API级别26吗?
time在较旧和较新的Android设备上都能很好地工作。它至少需要Java6
- 在Java8和更高版本以及更新的Android设备上(API级别26),现代API是内置的
- 在非androidjava6和7中,获取三个后端口,即现代类的后端口(三个十用于jsr310;请参见底部的链接)
- 在较旧的Android上,可以使用desugaring或Android版本的ThreeTen Backport。它叫ThreeTenABP。在后一种情况下,请确保使用子包从
导入日期和时间类org.threeten.bp
- 解释如何使用java.time
- ,其中首先描述了
java.time
- ,java.time的后端口到Java6和Java7(JSR-310为三十)
- ,Android版Three Ten Backport
- ,解释得非常透彻