Java复习笔记14【Calendar类的简单使用】
2015-05-02 13:44
369 查看
package com.lesson11.example;
import java.util.Calendar;
import java.util.Date;
/*
*简单了解Calendar类,操作时间日期
* */
public class CalendarExample {
public static void main(String args[]){
/*
* Calendar类是抽象类,且Calendar类的构造方法是protected的,所以
* 无法使用Calendar类的构造方法来创建对象,则需要getInstance方法用来创建对象。
* ---------------------------------------------------------
* 方法:public static Calendar getInstance()
* 功能:创建 Calendar对象
* 返回值:Calendar
* 注意:getInstance是静态方法,所以可以直接使用类名调用
* */
//创建Calendar对象
Calendar today = Calendar.getInstance();
//System.out.println(today);
//输出时间的具体信息:java.util.GregorianCalendar[time=1430445161507,
//areFieldsSet=true,…… YEAR=2015,MONTH=4,WEEK_OF_YEAR=18, ……]
/*
* 方法:public final void setTime(Date date)
* 功能:根据给定的时间设置Calendar对象
* 参数:Date
* 返回值:void
* */
//根据给定时间设置Calendar对象
Date date = new Date(2001-1900,2,13);//不建议使用Date的该带参构造方法
today.setTime(date);//设置指定时间
//System.out.println(today);//……time=984412800000……YEAR=2001……
//初始化Calendar对象(一般用于重置时间时)
today.setTime(new Date());
//System.out.println(today);//……YEAR=2015,MONTH=4,WEEK_OF_YEAR=18……
/*
* 除了使用Date类型,也可以直接使用Calendar中的set方法设置指定时间
* -----------------------------------------------------
* 方法:public final void set(int year,int month,int date,
* int hourOfDay,int minute)
* 功能:设置Calendar对象的年月日时分
* 返回值:void
* ------------------------------------------------------
* 方法:public final void set(int year,int month,int date)
* 功能:设置Calendar对象的年月日
* 返回值:void
* -------------------------------------------------------
* 方法:public void set(int field,int value)
* 功能:设置时间中指定的某个字段
* 参数:int field 指定的字段
* int value 指定字段值
* 返回:void
* ------------------------------------------------------
* 参数field代表要设置的字段的类型,常见类型如下:
* Calendar.YEAR——年份
* Calendar.MONTH——月份(月份从0开始, 实际月份显示要加1)
* Calendar.DATE——日期
* Calendar.DAY_OF_MONTH——日期,和上面的字段完全相同
* Calendar.HOUR——12小时制的小时数
* Calendar.HOUR_OF_DAY——24小时制的小时数
* Calendar.MINUTE——分钟
* Calendar.SECOND——秒
* Calendar.DAY_OF_WEEK——星期(周日是1,周一是2,周二是3……)
* */
today.set(Calendar.YEAR, 2009);
today.set(Calendar.MONTH, 10);
//System.out.println(today);
//输出:……YEAR=2009,MONTH=10……
today.setTime(new Date());
/*
* 方法:public int get(int field)
* 功能:获取指定字段的值
* 参数:int field 指定字段
* 返回:int 获取的字段值
* */
int year = today.get(Calendar.YEAR); //显示年份
int month = today.get(Calendar.MONTH) + 1; //显示月份
int day = today.get(Calendar.DATE); //显示日期
System.out.println("具体日期是"+year+"-"+month+"-"+day); //具体日期是2015-5-1
//本月第N天,和Calendar.DATE一样
int day_of_month = today.get(Calendar.DAY_OF_MONTH);
System.out.println(day_of_month);//1
//今年第N天
int day_of_year = today.get(Calendar.DAY_OF_YEAR);
System.out.println(day_of_year);//121
//获取星期
int day_of_week = today.get(Calendar.DAY_OF_WEEK);
System.out.println(day_of_week);//6,实际为星期五
/*
* 方法:public abstract void add(int field,int amount)
* 功能:在Calendar对象中的某个字段上增加或减少一定的数值
* 参数:int field 需要修改的字段值
* int amount 添加或减少的数值
* */
//5分钟以前
today.add(Calendar.MINUTE,-5);
int min5 = today.get(Calendar.MINUTE);
System.out.println(min5);
//计算当前时间30天以后的日期
today.add(Calendar.DATE,30);
//在日期字段上修改,类内部会重新计算该日期对象中其它各字段的值
int y = today.get(Calendar.YEAR);
int m = today.get(Calendar.MONTH)+1;
int d = today.get(Calendar.DATE);
System.out.println(y+"-"+m+"-"+d);
/*
* 方法:public boolean after(Object when)
* 功能:判断当前日期对象是否在when对象的后面
* 参数:Object when 指定的日期
* 返回值:boolean
* true 当前日期在指定日期之后
* false 当前日期在指定日期之前
* --------------------------------------
* 方法:public boolean before(Object when)
* 功能:判断当前日期对象是否在when对象之前
* 参数:Object when 指定的日期
* 返回值:boolean
* */
Calendar before = Calendar.getInstance();
before.set(2015,1,1);
System.out.println(today.after(before));//true
System.out.println(today.before(before));//false
/*
* 方法:public int compareTo(Calendar anotherCalendar)
* 功能:比较两个Calendar对象(可用于比较时间)
* 参数:Calendar anotherCalendar
* 返回值:int
* 0 Calendar == anotherCalendar
* -1 Calendar < anotherCalendar
* 1 Calendar > anotherCalendar
* */
//今天和之前相比
System.out.println(today.compareTo(before));//1
//今天和今天相比
System.out.println(today.compareTo(today));//0
/*
* Calendar对象和相对时间之间的转化:Calendar <--> long
* --------------------------------------------
* 方法:public long getTimeInMillis()
* 功能:将Calendar对象转化成long型
* 参数:无
* 返回值:long
* --------------------------------------------
* 方法:public void setTimeInMillis(long millis)
* 功能:将long型转化成Calendar对象
* 参数:long millis 毫秒数
* 返回值:void
* */
//计算today和before两个日期之间相差的天数
//将Calendar对象转化成相对时间
long todayMillis = today.getTimeInMillis();
long beforeMillis = before.getTimeInMillis();
long days = (todayMillis - beforeMillis)/(24 * 60 * 60 * 1000);
System.out.println(days);
}
}
import java.util.Calendar;
import java.util.Date;
/*
*简单了解Calendar类,操作时间日期
* */
public class CalendarExample {
public static void main(String args[]){
/*
* Calendar类是抽象类,且Calendar类的构造方法是protected的,所以
* 无法使用Calendar类的构造方法来创建对象,则需要getInstance方法用来创建对象。
* ---------------------------------------------------------
* 方法:public static Calendar getInstance()
* 功能:创建 Calendar对象
* 返回值:Calendar
* 注意:getInstance是静态方法,所以可以直接使用类名调用
* */
//创建Calendar对象
Calendar today = Calendar.getInstance();
//System.out.println(today);
//输出时间的具体信息:java.util.GregorianCalendar[time=1430445161507,
//areFieldsSet=true,…… YEAR=2015,MONTH=4,WEEK_OF_YEAR=18, ……]
/*
* 方法:public final void setTime(Date date)
* 功能:根据给定的时间设置Calendar对象
* 参数:Date
* 返回值:void
* */
//根据给定时间设置Calendar对象
Date date = new Date(2001-1900,2,13);//不建议使用Date的该带参构造方法
today.setTime(date);//设置指定时间
//System.out.println(today);//……time=984412800000……YEAR=2001……
//初始化Calendar对象(一般用于重置时间时)
today.setTime(new Date());
//System.out.println(today);//……YEAR=2015,MONTH=4,WEEK_OF_YEAR=18……
/*
* 除了使用Date类型,也可以直接使用Calendar中的set方法设置指定时间
* -----------------------------------------------------
* 方法:public final void set(int year,int month,int date,
* int hourOfDay,int minute)
* 功能:设置Calendar对象的年月日时分
* 返回值:void
* ------------------------------------------------------
* 方法:public final void set(int year,int month,int date)
* 功能:设置Calendar对象的年月日
* 返回值:void
* -------------------------------------------------------
* 方法:public void set(int field,int value)
* 功能:设置时间中指定的某个字段
* 参数:int field 指定的字段
* int value 指定字段值
* 返回:void
* ------------------------------------------------------
* 参数field代表要设置的字段的类型,常见类型如下:
* Calendar.YEAR——年份
* Calendar.MONTH——月份(月份从0开始, 实际月份显示要加1)
* Calendar.DATE——日期
* Calendar.DAY_OF_MONTH——日期,和上面的字段完全相同
* Calendar.HOUR——12小时制的小时数
* Calendar.HOUR_OF_DAY——24小时制的小时数
* Calendar.MINUTE——分钟
* Calendar.SECOND——秒
* Calendar.DAY_OF_WEEK——星期(周日是1,周一是2,周二是3……)
* */
today.set(Calendar.YEAR, 2009);
today.set(Calendar.MONTH, 10);
//System.out.println(today);
//输出:……YEAR=2009,MONTH=10……
today.setTime(new Date());
/*
* 方法:public int get(int field)
* 功能:获取指定字段的值
* 参数:int field 指定字段
* 返回:int 获取的字段值
* */
int year = today.get(Calendar.YEAR); //显示年份
int month = today.get(Calendar.MONTH) + 1; //显示月份
int day = today.get(Calendar.DATE); //显示日期
System.out.println("具体日期是"+year+"-"+month+"-"+day); //具体日期是2015-5-1
//本月第N天,和Calendar.DATE一样
int day_of_month = today.get(Calendar.DAY_OF_MONTH);
System.out.println(day_of_month);//1
//今年第N天
int day_of_year = today.get(Calendar.DAY_OF_YEAR);
System.out.println(day_of_year);//121
//获取星期
int day_of_week = today.get(Calendar.DAY_OF_WEEK);
System.out.println(day_of_week);//6,实际为星期五
/*
* 方法:public abstract void add(int field,int amount)
* 功能:在Calendar对象中的某个字段上增加或减少一定的数值
* 参数:int field 需要修改的字段值
* int amount 添加或减少的数值
* */
//5分钟以前
today.add(Calendar.MINUTE,-5);
int min5 = today.get(Calendar.MINUTE);
System.out.println(min5);
//计算当前时间30天以后的日期
today.add(Calendar.DATE,30);
//在日期字段上修改,类内部会重新计算该日期对象中其它各字段的值
int y = today.get(Calendar.YEAR);
int m = today.get(Calendar.MONTH)+1;
int d = today.get(Calendar.DATE);
System.out.println(y+"-"+m+"-"+d);
/*
* 方法:public boolean after(Object when)
* 功能:判断当前日期对象是否在when对象的后面
* 参数:Object when 指定的日期
* 返回值:boolean
* true 当前日期在指定日期之后
* false 当前日期在指定日期之前
* --------------------------------------
* 方法:public boolean before(Object when)
* 功能:判断当前日期对象是否在when对象之前
* 参数:Object when 指定的日期
* 返回值:boolean
* */
Calendar before = Calendar.getInstance();
before.set(2015,1,1);
System.out.println(today.after(before));//true
System.out.println(today.before(before));//false
/*
* 方法:public int compareTo(Calendar anotherCalendar)
* 功能:比较两个Calendar对象(可用于比较时间)
* 参数:Calendar anotherCalendar
* 返回值:int
* 0 Calendar == anotherCalendar
* -1 Calendar < anotherCalendar
* 1 Calendar > anotherCalendar
* */
//今天和之前相比
System.out.println(today.compareTo(before));//1
//今天和今天相比
System.out.println(today.compareTo(today));//0
/*
* Calendar对象和相对时间之间的转化:Calendar <--> long
* --------------------------------------------
* 方法:public long getTimeInMillis()
* 功能:将Calendar对象转化成long型
* 参数:无
* 返回值:long
* --------------------------------------------
* 方法:public void setTimeInMillis(long millis)
* 功能:将long型转化成Calendar对象
* 参数:long millis 毫秒数
* 返回值:void
* */
//计算today和before两个日期之间相差的天数
//将Calendar对象转化成相对时间
long todayMillis = today.getTimeInMillis();
long beforeMillis = before.getTimeInMillis();
long days = (todayMillis - beforeMillis)/(24 * 60 * 60 * 1000);
System.out.println(days);
}
}
相关文章推荐
- Java复习笔记13【Date类的简单使用】
- Java复习笔记8【super的简单用法】
- java学习笔记之使用MyEclipse编写一个简单的登陆界(一)
- java学习笔记之使用MyEclipse写一个简单的登陆界面(二)
- 复习 Core Java Chap14 多线程 笔记
- Java项目开发环境构建工具 Gradle 使用笔记(简单、基本)
- android菜鸟学习笔记14----Android控件(三) ListView的简单使用
- Java项目开发环境构建工具 Gradle 使用笔记(简单、基本)
- Java基础复习笔记12Java自定义注解Annotation的使用
- java工作笔记一 Maven,Guice , Mena的简单使用 ,Eclipse必会快捷键
- java 基础 简单正则表达式使用规则、Math类、Random类、System类、BigInteger类、BigDecimal类、Date类、SimpleDateFormat类、Calendar类
- Java中Date和Calendar类的简单使用
- Java项目开发环境构建工具 Gradle 使用笔记(简单、基本)
- HDPCD-Java-复习笔记(14)- lab
- Netty学习笔记14 使用Netty-SocketIO 实现简单聊天室程序
- JAVA学习笔记_Junit测试简单使用_assertEquals
- 【知了堂学习笔记】Java中static关键字的一些简单使用方法
- java笔记:反射的简单使用
- Java项目开发环境构建工具 Gradle 使用笔记(简单、基本)
- Java项目开发环境构建工具 Gradle 使用笔记(简单、基本)