[英]Getting day of week from a string data with simple date format in java
我試圖從包含簡單格式(“yyyy-MM-dd”)的日期字符串的數組列表中獲取星期幾。 例如,我有 arraylist = {"2021-04-01", "2021-05-03", "2020-06-17"}。 是否可以確定每個日期屬於一周中的哪一天? 所以對於“2021-04-01”的第一個字符串,我想把它變成“星期四”。
謝謝您的幫助!
您的日期字符串符合 ISO 8601 標准。 現代日期時間 API 基於ISO 8601 ,只要日期時間字符串符合 ISO 8601 標准,就不需要明確使用DateTimeFormatter
對象。
只需使用LocalDate#parse
解析字符串並使用LocalDate#getDayOfWeek
來獲取星期幾,例如
System.out.println(
LocalDate.parse("2021-04-01")
.getDayOfWeek()
.getDisplayName(TextStyle.FULL, Locale.ENGLISH)
);
演示更多樣式:
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.format.TextStyle;
import java.util.Arrays;
import java.util.List;
import java.util.Locale;
import java.util.stream.Stream;
public class Main {
public static void main(String[] args) {
Stream.of(
"2021-04-01",
"2021-05-03",
"2020-06-17"
).forEach(s ->
System.out.printf(
"%s, %s, %s%n",
LocalDate.parse(s).getDayOfWeek(),
LocalDate.parse(s).getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.ENGLISH),
LocalDate.parse(s).getDayOfWeek().getDisplayName(TextStyle.SHORT, Locale.ENGLISH)
)
);
System.out.println("+-+-+-+-+-+-+-+-+-+-+-+-+");
// Non-Stream solution:
// Also, showing only one style without using String#format i.e. %s
List<String> strDateList = Arrays.asList(
"2021-04-01",
"2021-05-03",
"2020-06-17"
);
for(String s: strDateList) {
LocalDate date = LocalDate.parse(s);
DayOfWeek dow = date.getDayOfWeek();
System.out.println(dow.getDisplayName(TextStyle.FULL, Locale.ENGLISH));
}
}
}
輸出:
THURSDAY, Thursday, Thu
MONDAY, Monday, Mon
WEDNESDAY, Wednesday, Wed
+-+-+-+-+-+-+-+-+-+-+-+-+
Thursday
Monday
Wednesday
從Trail: Date Time 中了解有關現代日期時間 API 的更多信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.