如何通过特定日期确定星期几?
问题
例如,我有日期:"2010年2月23日"(2010年2月23日)。我想将它传递给一个函数,该函数将返回星期一的第天.我该怎么做?
在此示例中,函数应返回String
"Tue"。
此外,如果只需要日序,那么如何检索?
#1 热门回答(271 赞)
是。根据你的确切情况:
- 你可以使用java.util.Calendar:Calendar c = Calendar.getInstance();
c.setTime(yourDate);
int dayOfWeek = c.get(Calendar.DAY_OF_WEEK); - 如果你需要输出为Tue而不是3(星期几从1开始索引),而不是通过日历,只需重新格式化字符串:new SimpleDateFormat("EE")。format(date)(EE含义) "星期几,短版")
- 如果你的输入是字符串而不是Date,你应该使用SimpleDateFormat来解析它:new SimpleDateFormat("dd / M / yyyy")。parse(dateString)
- 你可以使用joda-time的DateTime并调用dateTime.dayOfWeek()和/或DateTimeFormat。
#2 热门回答(52 赞)
String input_date="01/08/2012";
SimpleDateFormat format1=new SimpleDateFormat("dd/MM/yyyy");
Date dt1=format1.parse(input_date);
DateFormat format2=new SimpleDateFormat("EEEE");
String finalDay=format2.format(dt1);
使用此代码从输入日期查找日期名称。简单且经过充分测试。
#3 热门回答(22 赞)
只需使用SimpleDateFormat。
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy", java.util.Locale.ENGLISH);
Date myDate = sdf.parse("28/12/2013");
sdf.applyPattern("EEE, d MMM yyyy");
String sMyDate = sdf.format(myDate);
其结果是:Sat,28 Dec 2013
默认构造函数采用"默认"Locale,因此在需要特定模式时请小心使用它。
public SimpleDateFormat(String pattern) {
this(pattern, Locale.getDefault(Locale.Category.FORMAT));
}