想要把一周中的某一天作为一个字符串,但是错误的一天

Jho*_*onF 2 java date

我尝试使用以下代码将日期作为字符串.但它返回错误的字符串.我可以使用此代码修复它吗?

private String getDayOfWeek(int value){
    String day = "";
    switch(value){
    case 1:
        day="Sunday";
        break;
    case 2:
        day="Monday";
        break;
    case 3:
        day="Tuesday";
        break;
    case 4:
        day="Wednesday";
        break;
    case 5:
        day="Thursday";
        break;
    case 6:
        day="Friday";
        break;
    case 7:
        day="Saturday";
        break;
    }
    return day;
Run Code Online (Sandbox Code Playgroud)

我实现它

Calendar c = Calendar.getInstance();    
String dayOfWeek = getDayOfWeek(Calendar.DAY_OF_WEEK);
System.out.println(dayOfWeek);
Run Code Online (Sandbox Code Playgroud)

Sot*_*lis 15

你需要使用

String dayOfWeek = getDayOfWeek(c.get(Calendar.DAY_OF_WEEK));
Run Code Online (Sandbox Code Playgroud)

你之前在做什么

String dayOfWeek = getDayOfWeek(Calendar.DAY_OF_WEEK);
Run Code Online (Sandbox Code Playgroud)

正在使用随机常量(恰好是7)调用您的方法,Calendar该类用于表示DAY_OF_WEEK日期中的字段.

你实际需要的是在你的Calendar实例中得到星期几的值,这就是Calendar#get(int)

c.get(Calendar.DAY_OF_WEEK)
Run Code Online (Sandbox Code Playgroud)

回报.


在相关说明中,尝试学习并使用注释中所述的实际调试器.

  • +1*"在相关的注释中,尝试将作为参数传递的值记录到您的方法中.它有助于调试."*更好的主意:使用***调试器***.*请*,我们可以在20世纪70年代离开`printf`式调试. (6认同)

vij*_*mar 9

从日历对象中使用getdisplayname方法.

Calendar currentDate=new GregorianCalendar();

String dayOfWeek = currentDate.getDisplayName( Calendar.DAY_OF_WEEK ,Calendar.LONG, Locale.getDefault());
Run Code Online (Sandbox Code Playgroud)


Bro*_*her 7

我认为获得星期几的最佳方式是使用以下简单的代码片段:

Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("EEEEE");
String dayOfWeek = dateFormat.format(date);
System.out.println(dayOfWeek);
Run Code Online (Sandbox Code Playgroud)

如果要使用日历:

Calendar c = Calendar.getInstance();
SimpleDateFormat dateFormat = new SimpleDateFormat("EEEEE");
String dayOfWeek = dateFormat.format(c.getTime());
System.out.println(dayOfWeek);
Run Code Online (Sandbox Code Playgroud)

格式"EEEEE"返回星期几:星期日,星期一..用机器的语言,在代码上用英语修复更好.


Kuc*_*chi 6

DayOfWeek::getDisplayName

自 Java 8 以来,使用 DateTime API 有一种很好的方法可以做到这一点

LocalDate localDate = LocalDate.parse("2018-08-29");
DayOfWeek dayOfWeek = localDate.getDayOfWeek();
String displayName = dayOfWeek.getDisplayName(TextStyle.FULL, Locale.ENGLISH);
Run Code Online (Sandbox Code Playgroud)

现在displayName等于Wednesday

随着DayOfWeek.of(int dayOfWeek)没有必要switch语句。

按编号

要访问问题中所示的DayOfWeek按编号,请根据 ISO 8601 标准在周一至周日使用 1-7。

DayOfWeek.of( 1 ).getDisplayName(TextStyle.FULL, Locale.ENGLISH)
Run Code Online (Sandbox Code Playgroud)

周一

按常数

或者使用七个命名的枚举对象之一。

DayOfWeek.MONDAY.getDisplayName(TextStyle.FULL, Locale.ENGLISH)
Run Code Online (Sandbox Code Playgroud)

周一