我有一个字符串" 2015-02-24",我怎样才能得到像星期一或星期一的#34;在android中。我尝试使用下面的代码但失败了。
SimpleDateFormat sdf = new SimpleDateFormat("EEEE");
Date d = new Date("2015-02-24");
String dayOfTheWeek = sdf.format(d);
答案 0 :(得分:4)
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();
}
答案 1 :(得分:2)
使用日历实例或使用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 doc中看到Date:
构造函数摘要:
<强>日期():强> 分配一个Date对象并对其进行初始化,使其表示分配时间,测量精确到毫秒。
日期(int year,int month,int date): 已过时。从JDK 1.1版开始,由Calendar.set(年份+ 1900,月份,日期)或GregorianCalendar(年份+ 1900,月份,日期)取代。
日期(int year,int month,int date,int hrs,int min): 已过时。从JDK 1.1版开始,由Calendar.set(年份+ 1900,月份,日期,小时,分钟)或GregorianCalendar(年份+ 1900,月份,日期,小时,分钟)取代。
日期(int year,int month,int date,int hrs,int min,int sec): 已过时。从JDK 1.1版开始,由Calendar.set(年份+ 1900,月,日,小时,分钟,秒)或GregorianCalendar(年+ 1900,月,日,小时,分钟,秒)取代。
日期(漫长日期): 分配一个Date对象并对其进行初始化,以表示自标准基准时间(即“epoch”)以来的指定毫秒数,即1970年1月1日00:00:00 GMT。
日期(字符串s): 已过时。从JDK 1.1版开始,由DateFormat.parse(String s)替换。
只有日期()和日期(长日期)仍可使用。
答案 2 :(得分:1)
您需要先将String格式的日期转换为Date对象。这可以通过以下方式完成:
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date date = dateFormat.parse(date);
然后您可以通过以下方式格式化上述日期:
SimpleDateFormat weekDayFormat = new SimpleDateFormat("EEEE");
String dayOfTheWeek = weekDayFormat.format(date);
答案 3 :(得分:0)
所有答案都是正确的。我只是总结了所有人的本质。
首先,您需要将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
,您可以得到任何您想要的东西。以下是Calendar on Android Docs的更多信息。