我有一个字符串"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文档上日历的更多信息。