这个考察的是时间格式化的理解
代码:
package com.study.java8;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* hgg-2021年10月26日16:02:15
*/
public class DateTools {
/**
* 日期转星期
*
* @param datetime
* @return
*/
public static void dateToWeek(String datetime) {
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
//星期几(7表示星期日)
String[] weekDays = { "7", "1", "2", "3", "4", "5", "6" };
Calendar cal = Calendar.getInstance();
Date datet = null;
try {
datet = f.parse(datetime);
cal.setTime(datet);
} catch (ParseException e) {
e.printStackTrace();
}
// 指示一个星期中的某天。
int w = cal.get(Calendar.DAY_OF_WEEK) - 1;
if (w < 0){
w = 0;
}
System.out.println("星期:"+weekDays[w]);
System.out.println("该年的第几天:"+cal.get(Calendar.DAY_OF_YEAR));
}
public static void main(String[] args) {
DateTools.dateToWeek("2020-11-17");
}
}
结果:
public static void main(String[] args) {
// 获取输入
Scanner sc = new Scanner(System.in);
// 日期格式
String dateFormat = "yyyy-MM-dd";
try {
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
// 转日期
Date date = sdf.parse(sc.nextLine());
Calendar c = Calendar.getInstance();
// 转成日历
c.setTime(date);
int week = c.get(Calendar.DAY_OF_WEEK);
int day = c.get(Calendar.DAY_OF_YEAR);
// week 周日到周一对应的是 1 - 7,所以要转换一下
System.out.println(week == 1 ? 7 : week - 1);
System.out.println(day);
} catch (ParseException e) {
e.printStackTrace();
}
}