日期类
Calendar
主要用在日期的 处理
-
创建
Calendar c = new GregorianCalendar();
//GregorianCalendar (公历类) 是 Calendar(抽象类)的子类 -
set方法
void set(int field,int value)//field日历类的参数
例:c.set(Calendar.year,2019);void set(int year,int month,int date)//设置年月日。
void set(int year, int month, int date, int hourOfDay, int minute)
//设置年月日时分void set(int year, int month, int date, int hourOfDay, int minute, int second)//设置年月日时分秒
void setTime(Date date);
//使用给定的 Date 设置此 Calendar 的时间。void add(int field,amont);//根据日历的规则,为给定的日历字段添加或减去指定的时间量。可加减。
如:c.add(Calendar.YEAR,1)年份加一。
附程序
package testDate;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public class TestCalendar {
public static void main(String[] args) {
Calendar c = new GregorianCalendar();
c.set(2019, 6, 1, 10, 0, 0);
// c.set(Calendar.YEAR,2019 );
// c.set(Calendar.MONTH,6 );
// c.set(Calendar.DATE,1);
// c.setTime(new Date());
Date d = c.getTime();
System.out.println(d);
System.out.println(c.get(Calendar.YEAR));
c.add(Calendar.YEAR, 1);
System.out.println(c.get(Calendar.YEAR));
}
}
-
运行结果
Mon Jul 01 10:00:00 GMT+08:00 2019 2019 2020
###总结
1、Date
在 java.util 包中,实现了 Serializable,Cloneable,Comparable
Date 中很多方法已经废弃,可以使用 Calender 类来实现日期和日期字段之间的转换,使用 DateFormat 类来格式化和解析日期字符串。
2、Calender
在 java.util 包中,实现了 Serializable,Cloneable,Comparable,是一个抽象类。
Calender 获取实例的方法:Calendar calendar = Calendar.getInstance();
通过对 Calender 实例的设置实现对日期的操作。
3、DateFormat 用来格式化时间
在 java.text 包中,实现了 Serializable, Cloneable 接口,继承 Format 类。
附日历程序
package testDate;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Scanner;
public class VisualCalendar {
public static void main(String[] args) {
System.out.println("请输入日期(按照格式:2030-3-10):");
Scanner s = new Scanner(System.in);
String temp = s.nextLine();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
try {
Date date = df.parse(temp);
Calendar c = new GregorianCalendar();
c.setTime(date);
int day = c.get(Calendar.DATE);
System.out.println("日\t一\t二\t三\t四\t五\t六");
for(int i=1;i<c.get(Calendar.DAY_OF_WEEK);i++){
System.out.print('\t');
}
for(int i=1;i<=c.getActualMaximum(Calendar.DATE);i++){
if(i==day){
System.out.print("*");
}
System.out.print(i+"\t");
int w = c.get(Calendar.DAY_OF_WEEK);
if(w==7){
System.out.print("\n");
}
c.add(Calendar.DATE,1);
}
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}