Date和Calendar类
Date
三个子类:* java.util.Date三个子类
-
java.sql.Date 年月日
- java.sql.Time 时分秒
- java.sql.TimeStamp 时间戳 年月日时分秒 毫秒
*(1)系统当前时间;瞬时时间; - Date date=new Date();
- System.out.println(date);
(2)Date date1=new Date(24L6060100036525);
System.out.println(date1);
(3)从键盘输入字符串:时间格式;
用格式化器把String类型转成Date类型;
*(4)19700101 00:00:00以来的毫秒数;date1.getTime();
*(5)long startTime=System.currentTimeMillis();
DateFormat
DateFormat:抽象类;
SimpleDateFormat:子类;
模式: - yyyy:年
- MM:月
- dd:日
- hh:12小时制;
- HH:24小时制;
mm:分; - ss:秒;
- SS:毫秒;
*1.把Date格式化成String类型;
- Date date=new Date();
- DateFormat df=new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss SS”);
- String strDate=df.format(date);
*2.把String类型转成Date类型;
- String strInput=“1990-08-08”;//字符串的格式一定要和格式化器设置的一致;
- //创建一个格式化器;
DateFormat df1=new SimpleDateFormat(“yyyy-MM-dd”);
Date date1=df1.parse(strInput);
/
Calendar
/
*1.Calendar:表示的是瞬时时间;
*2.Calendar:抽象类;
- GregorianCalendar:子类;
*3.Calendar cal=Calendar.getInstance();
- Calendar cal1=new GregorianCalendar();
*4.Calendar—>Date:cal.getTime();*相比于Date,Calendar能更灵活地获得和指定时间;
*5.查:
*cal.get(Calendar.YEAR)
*cal.get(Calendar.MONTH)
*cal.get(Calendar.DATE)
*
*6.改:
*cal.set(Calendar.YEAR, 2016);
*cal.set(Calendar.MONTH, 7);
*cal.set(Calendar.DATE, 8);
*
- */
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
public class Study07 {
public static void main(String[] args) throws ParseException {
Date date = new Date();
System.out.println(date);
Date date1 = new Date(24L * 365 * 60 * 60 * 1000 * 10);
System.out.println(date1);
System.out.println(date1.getTime());//19700101 00:00:00以来的毫秒数;
long startTime = System.currentTimeMillis();
System.out.println(startTime);//19700101 00:00:00以来的毫秒数;
/**
-
时间格式和字符串直接装换
-
dateFormat.format(date);时间转字符串
*/
DateFormat dateFormat = new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss SSS”);
String strdate = dateFormat.format(date);
System.out.println(strdate);
String strdate01 = “2022-08-29”;
DateFormat dateFormat1 = new SimpleDateFormat(“yyyy-MM-dd”);
Date date2 = dateFormat1.parse(strdate01);
System.out.println(date2);
System.out.println(“=Calendar==”);
Calendar calendar=Calendar.getInstance();
System.out.println(calendar.getTime());//通过getTime()获取当前时间
//查询时间
System.out.println(calendar.get(Calendar.YEAR));
System.out.println(calendar.get(Calendar.MONTH));//月份是0到11月
System.out.println(calendar.get(Calendar.DATE));
System.out.println(calendar.get(Calendar.DAY_OF_WEEK));
//修改时间
calendar.set(Calendar.YEAR,2016);
System.out.println(calendar.getTime());//获取本月最大天数 System.out.println(calendar.getActualMaximum(Calendar.DATE)); //增加 calendar.add(Calendar.YEAR,-1); System.out.println(calendar.getTime()); //万年历 // 1.从键盘输入一个字符串,时间格式;把字符串转成Date格式。 Scanner input=new Scanner(System.in); System.out.println("请输入时间(注意格式:2015-02-28):"); String strDate=input.next(); //把strDate转成Date; DateFormat df=new SimpleDateFormat("yyyy-MM-dd"); Date date03=null; try { date03=df.parse(strDate); } catch (ParseException e) { System.out.println("请输入正确的时间格式。"); } //2.把Date转成Calender类型; Calendar cal=Calendar.getInstance(); cal.setTime(date03); System.out.println(cal.getTime()); //得到本月的天数; int maxDays=cal.getActualMaximum(Calendar.DATE); //得到本月的日期; int now=cal.get(Calendar.DATE); //得到本月1日是一星期中的第几天; cal.set(Calendar.DATE, 1); System.out.println(cal.getTime()); int week=cal.get(Calendar.DAY_OF_WEEK); //得到以上信息,开始输出; System.out.println("日\t一\t二\t三\t四\t五\t六"); //输出空格; for(int i=1;i<week;i++){ System.out.print("\t"); } //输出日期数字; for(int i=1;i<=maxDays;i++){ if(i==now){ System.out.print(i+"*\t"); }else{ System.out.print(i+"\t"); } //换行; if(cal.get(Calendar.DAY_OF_WEEK)==7){ System.out.println(); } //每次循环结束,cal日期加1;为下次循环做准备; cal.add(Calendar.DATE, 1); }
}
}