我想看看我们是否可以按区域设置排列工作日。例如,在美国语言环境中,我们将从星期日开始,而法国将从星期一开始(就日历而言)。为了理解它,我正在制作一个闹钟应用程序,其中工作日的闹钟会在某些日子重复 -
以下是我所看到的工作日未按顺序排列的
new DateFormatSymbols().getShortWeekdays();
0 = ""
1 = "Sun"
2 = "Mon"
3 = "Tue"
4 = "Wed"
5 = "Thu"
6 = "Fri"
7 = "Sat"
0 = ""
1 = "dim."
2 = "lun."
3 = "mar."
4 = "mer."
5 = "jeu."
6 = "ven."
7 = "sam."
java.time
public static void printWeekdays(Locale loc) {
WeekFields wf = WeekFields.of(loc);
DayOfWeek day = wf.getFirstDayOfWeek();
for (int i = 0; i < DayOfWeek.values().length; i++) {
System.out.println(day.getDisplayName(TextStyle.SHORT, loc));
day = day.plus(1);
}
}
让我们尝试一下:
printWeekdays(Locale.US);
该调用的输出是:
Sun
Mon
Tue
Wed
Thu
Fri
Sat
或者用法语:
printWeekdays(Locale.FRANCE);
现在 Monday/lundi 排在第一位,当然是法语:
lun.
mar.
mer.
jeu.
ven.
sam.
dim.
问:我可以在 Android 上使用 java.time 吗?
是的,java.time 在旧版和新版 Android 设备上都能很好地工作。只需要至少Java 6.
- 在 Java 8 及更高版本以及较新的 Android 设备(从 API 级别 26 开始)中,现代 API 是内置的。
- 在 Java 6 和 7 中,获取 ThreeTen Backport,即新类的向后移植(ThreeTen for JSR 310;请参阅底部的链接)。
- 在(较旧的)Android 上使用 ThreeTen Backport 的 Android 版本。它被称为 ThreeTenABP。并确保您从以下位置导入日期和时间类
org.threeten.bp
与子包。
Links
-
Oracle 教程:日期时间 https://docs.oracle.com/javase/tutorial/datetime/解释如何使用
java.time
.
-
Java 规范请求 (JSR) 310 https://jcp.org/en/jsr/detail?id=310, where
java.time
首次被描述。
-
ThreeTen 后移植项目 http://www.threeten.org/threetenbp/,向后移植
java.time
到 Java 6 和 7(JSR-310 为 ThreeTen)。
-
三十ABP https://github.com/JakeWharton/ThreeTenABP, Android 版 ThreeTen Backport
-
问题:如何在Android项目中使用ThreeTenABP https://stackoverflow.com/questions/38922754/how-to-use-threetenabp-in-android-project,有非常详尽的解释。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)