Date、Calendar
一. Date类
构造方法:
Date dl = new Date(); 当前时间
Date dl1 = new Date(long date); 时间戳转化为时间
成员方法:
public long getTime() 获取从1970年1月1日零点到现在毫秒值
public void setTime(long time) 设置时间,给的是毫秒值
二. SimpleDateFormat
构造器
SimpleDateFormat()
SimpleDateFormat(String pattern)
date转string
public final format(Date date)
string转date
public Date parse(String source)
拿到当前时间
Date dd = new Date();
格式化 日期转string
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String s = sdf.format(dd);
System.out.println(s);
System.out.println("--------");
格式化 string转日期
Date dd1 = sdf.parse("2006-01-02 05:18:72");
System.out.println(dd1);
三. Calendar类
构造方法
Calendar.getInstance()
成员方法
public int get(int field); // 获取年月日,时分秒等
public abstract void add(int field, int amout) // 添加或减去日期
public final void set(int year, int month, int date) // 设置当前日历的年月日
// 获取日历
Calendar ca = Calendar.getInstance();
// 获取年月日
int year = ca.get(Calendar.YEAR);
int month = ca.get(Calendar.MONTH) + 1;
int day = ca.get(Calendar.DATE);
int hour = ca.get(Calendar.HOUR);
int minute = ca.get(Calendar.MINUTE);
int second = ca.get(Calendar.SECOND);
System.out.println(year + "-" +
month + "-" +
day + "-" +
" " +
hour + ":" +
minute + ":" +
second);
日期处理
public static void main(String[] args) {
//获取日历类对象
Calendar c = Calendar.getInstance();
// 往前数3年
c.add(Calendar.YEAR,-3);
currentDate(c);
// 往前数3个月
c.add(Calendar.MONTH,-2);
currentDate(c);
// 往前数3分钟
c.add(Calendar.MINUTE,-3);
currentDate(c);
// 设置当前的年月日
c.set(2015,9,7);
currentDate(c);
}
public static void currentDate(Calendar c){
//public int get(int field):返回给定日历字段的值
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH) + 1;
int date = c.get(Calendar.DATE);
int minute = c.get(Calendar.MINUTE);
System.out.println(year + "年" + month + "月" + date + "日" + minute + "分钟");
System.out.println("--------");
}
Calendar转化为Date
Calendar cal=Calendar.getInstance();
Date date=cal.getTime();
Date转化为Calendar
Date date=new Date();
Calendar cal=Calendar.getInstance();
cal.setTime(date);
案例:
获取任意一年的二月有多少天?
// 要求用户输入
Scanner sc = new Scanner(System.in);
System.out.println("获取任意一年的二月有多少天");
System.out.println("请输入你想查询的年份:");
int year = sc.nextInt(); // 假如设置2020年
// 计算
Calendar ca = Calendar.getInstance();
// 设置时间为该年的 3月1号 (这里的2是3月,写3会变成4月)
ca.set(year,2,1);
// 获取往前数一天的时间
ca.add(Calendar.DATE, -1);
// 获取这一天的日期
int day = ca.get(Calendar.DATE);
System.out.println("day = " + day); //29
currentDate(ca);
// 2020年2月29日