如何在安卓中从"2015-02-24"中获取像"Monday"字符串一样的一天



我有一个字符串"2015-02-24",我如何在android中获得"像星期一或星期一这样的日期名称"。我尝试使用下面的代码,但失败了。

SimpleDateFormat sdf = new SimpleDateFormat("EEEE");
                    Date d = new Date("2015-02-24");
String dayOfTheWeek = sdf.format(d);
String input_date_string="2015-02-24";
        SimpleDateFormat dateformat=new SimpleDateFormat("yyyy-MM-dd");
        Date date;
        try {
            date = dateformat.parse(input_date_string);
            DateFormat dayFormate=new SimpleDateFormat("EEEE"); 
            String dayFromDate=dayFormate.format(date);
            Log.d("asd", "----------:: "+dayFromDate);
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

使用日历实例或使用DateFormat

简单:

Calendar c = Calendar.getInstance();
c.setTime(yourDate);
int dayOfWeek = c.get(Calendar.DAY_OF_WEEK);

或者:

String dayOfTheWeek = (String) android.text.format.DateFormat.format("EEEE", date);//Thursday
String stringMonth = (String) android.text.format.DateFormat.format("MMM", date); //Jun
String intMonth = (String) android.text.format.DateFormat.format("MM", date); //06
String year = (String) android.text.format.DateFormat.format("yyyy", date); //2013
String day = (String) android.text.format.DateFormat.format("dd", date); //20

更新:您必须在Java文档中看到日期:

建造商总结:

日期():分配Date对象并对其进行初始化,使其表示分配的时间,精确到毫秒。

日期(int年、int月、int日期):已弃用。从JDK 1.1版本起,替换为Calendar.set(年+1900,月,日期)或GregorianCalendar(年+11900,月,日)。

日期(int年、int月、int日期、int小时、int分钟):已弃用。从JDK 1.1版本起,替换为Calendar.set(年+1900,月,日期,小时,分钟)或GregorianCalendar(年+11900,月,日,小时,分)。

日期(int年、int月、int日期、int小时、int分钟、int秒):已弃用。从JDK 1.1版本起,替换为Calendar.set(年+1900,月,日期,小时,分钟,秒)或GregorianCalendar(年+190,月,日,小时,分,秒)。

日期(长日期):分配Date对象并将其初始化以表示自称为"0"的标准基准时间以来指定的毫秒数;"纪元";,即1970年1月1日00:00:00 GMT。

日期(字符串s):已弃用。从JDK 1.1版本开始,被DateFormat.parse(Strings)取代。

只有Date()和Date(long Date)仍然可用。

您需要首先将String格式的日期转换为date对象。这可以通过以下方式完成:

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date date = dateFormat.parse(date);

然后,您可以通过以下方式格式化上述日期:

SimpleDateFormat weekDayFormat = new SimpleDateFormat("EEEE");
String dayOfTheWeek = weekDayFormat.format(date);

所有答案都是正确的。我只是在总结所有的本质。

首先,您需要将String解析为Date,如下所示:

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
try {
    Date date = dateFormat.parse("2015-02-24");
}
catch (ParseException e) {
    e.printStackTrace();
}

您的date已准备就绪:)

Date类的主要函数已被弃用。因此,您应该使用Calendar。像这样:

Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
switch(dayOfWeek)
{
    case Calendar.SUNDAY: 
        break;
    case Calendar.MONDAY:
        break;
    case Calendar.TUESDAY:
        break;
    case Calendar.WEDNESDAY:
        break;
    case Calendar.THURSDAY:
        break;
    case Calendar.FRIDAY:
        break;
    case Calendar.SATURDAY:
        break;
}

现在有了calendar,你可以得到任何你想要的东西。以下是Android文档上日历的更多信息。

最新更新