簡體   English   中英

在java中使用簡單的日期格式從字符串數據中獲取星期幾

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM