【问题标题】:Android : Set the date and get day of weekAndroid:设置日期并获取星期几
【发布时间】:2015-01-15 23:28:52
【问题描述】:

我有问题 设置日期并获取星期几

设置 2011/1/17 ==> 得到星期一

   Date d = new Date();

d.setDate(17);
d.setMonth(1);
d.setYear(2011);

    SimpleDateFormat sdf = new SimpleDateFormat("EEEE");
    String dayOfWeek = sdf.format(d);

/* - - - - - - - - - 或 - - - - - - - - - - - - - - */

    Calendar c = Calendar.getInstance();

c.set(2011, 1, 17);

    int day = c.get(Calendar.DAY_OF_WEEK);
    String weekDay="";

    switch (day) {
                case Calendar.SUNDAY: weekDay = "Sunday"; break;
                case Calendar.MONDAY: weekDay = "Monday"; break;
                case Calendar.TUESDAY: weekDay = "Tuesday"; break;
                case Calendar.WEDNESDAY: weekDay = "Wednesday"; break;
                case Calendar.THURSDAY: weekDay = "Thursday"; break;
                case Calendar.FRIDAY: weekDay = "Friday"; break;
                case Calendar.SATURDAY: weekDay = "Saturday"; break;
              }

【问题讨论】:

    标签: android date get calendar set


    【解决方案1】:

    记住一月在 java Calendar 中应该是 0。要设置 2011/01/17,它应该是 2011/00/17。

    c.set(2011, 0, 17);
    //or c.set(2011, Calendar.JANUARY, 17);
    
    int day = c.get(Calendar.DAY_OF_WEEK);
    String weekDay="";
    
    switch (day) {
                case Calendar.SUNDAY: weekDay = "Sunday"; break;
                case Calendar.MONDAY: weekDay = "Monday"; break;
                case Calendar.TUESDAY: weekDay = "Tuesday"; break;
                case Calendar.WEDNESDAY: weekDay = "Wednesday"; break;
                case Calendar.THURSDAY: weekDay = "Thursday"; break;
                case Calendar.FRIDAY: weekDay = "Friday"; break;
                case Calendar.SATURDAY: weekDay = "Saturday"; break;
              }
    

    【讨论】:

      【解决方案2】:

      你可以用这个

      Calendar cal = Calendar.getInstance();
      cal.set(2011, 0, 17);
      SimpleDateFormat sdf = new SimpleDateFormat("EEEE",Locale.getDefault());
      String dayInStrinFormat = sdf.format(cal.getTime());
      

      0 表示 1 月 .... 11 表示 12 月

      【讨论】:

      • 是的,这是 Java 日期/时间 API 中的问题,请查看此处以获取更多信息 link
      • 正如@Nguyen Doan Tung 所说,您可以在一月份使用 0 来克服这个问题
      猜你喜欢
      • 1970-01-01
      • 2017-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-02
      • 1970-01-01
      相关资源
      最近更新 更多