* 默认创建出来的Date实例表示当前系统时间
Date date = new Date();
* 获取Date内部维护的long值
long l = date.getTime();
* 支持传入long值的构造方法
* 创建的Date就表示该long值所表示的时间
Date now = new Date(1000*60*60*24);
* 也可以在现有的Date对象上调用setTime方法
* 将long值传入,使其表示这个时间
date.setTime(1000*60*60*24);
* java.text.SimpleDateFormat
* 该类的作用是使用给定的字符串格式在
* Date与String之间进行相互转换。
* 对于该类,需要掌握:
* 1:会写日期格式字符串
* 2:记住两个转换方法(String->Date,Date->String)
*构造的时间格式 yyyy-MM-dd HH:mm:ss
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
* String format(Date date)
* 按照创建SimpleDateFormat是指定的日期格式,
* 将当前给定的date对象表示的时间转换为字符串。
String str = sdf.format(now);
* Date parse(String str)
* 将给定的字符串按照该日期格式解析为Date对象并返回
String str = "2008-08-08 20:08:00";
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = sdf.parse(str);
* java.util.Calendar
* 日历类,用于操作时间。
* 常用的是格里高利历法(阳历)
* 默认创建出来的Calendar实现类的实例表示
* 当前系统时间
* Calendar的getInstance可以根据当前系统所在
* 地区创建合适的实现类,通常是格里高利历法
Calendar calendar = Calendar.getInstance();
* 不能直观看到具体表示的时间。
System.out.println(calendar);
* calendar->Date
* Date getTime()
* Calendar提供的getTime方法可以将其表示的
* 时间以Date形式返回。
Date date = calendar.getTime();
* Date->Calendar
* void setTime(Date date)
* Calendar提供了一个setTime()方法,可以使当前
* Calendar表示给定的date所表示的时间。
calendar.setTime(date);
* Calendar提供了一个set方法,允许我们
* 对当前Calendar的各个时间分量进行单独
* 设定。
* 设置各个时间分量,
* 使其表示:2008/08/08 20:08:08
* 需要注意,设置了某个时间分量的值可能会
* 影响其他时间分量的值。
* 例如:设置了年,月,日可能会将星期几改变。
//设置年份
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, 2008);
* 设置月份 月份有常量对应,若使用数字从0开始。
* 即:0表示1月,1表示2月。。。
calendar.set(Calendar.MONTH, 7);
//设置日
calendar.set(Calendar.DAY_OF_MONTH, 8);
//设置时
calendar.set(Calendar.HOUR_OF_DAY, 20);
//设置分
calendar.set(Calendar.MINUTE, 8);
//设置秒
calendar.set(Calendar.SECOND, 0);
* Calendar提供了一个get方法,可以获取
* 给定的时间分量所对应的值
Calendar calendar = Calendar.getInstance();
//获取年
int year = calendar.get(Calendar.YEAR);
//获取月
int month = calendar.get(Calendar.MONTH)+1;
//获取日
int day = calendar.get(Calendar.DATE);
//获取星期
int week = calendar.get(Calendar.DAY_OF_WEEK)-1;
System.out.println("星期:"+(week==1?7:week-1));
* Calendar提供了一个方法,可以获取给定的时间分量
* 在当前Calendar表示的日期中所允许的最大值。
* 查看当月的月底
int days = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
System.out.println("当月共:"+days+"天");
* 今年共多少天?
days = calendar.getActualMaximum(Calendar.DAY_OF_YEAR);
System.out.println("今年共:"+days+"天");
* Calendar提供了一个add方法,用来计算时间
* void add(int field,int value)
* 对指定的时间分量加上给定的值,若value是负数,则
* 是减去指定的值
Calendar calendar = Calendar.getInstance();
* 查看3年零2个月又25天后是哪天?
calendar.add(Calendar.YEAR, 3);
calendar.add(Calendar.MONTH, 2);
calendar.add(Calendar.DAY_OF_YEAR, 25);
//减去4年
calendar.add(Calendar.YEAR, -4);
* 默认创建出来的Date实例表示当前系统时间 Date date = new Date(); * 获取Date内部维护的long值 long l = date.getTime(); * 支持传入long值的构造方法 * 创建的Date就表示该long值所表示的时间 Date now = new Date(1000*60*60*24);
* 也可以在现有的Date对象上调用setTime方法 * 将long值传入,使其表示这个时间 date.setTime(1000*60*60*24); * java.text.SimpleDateFormat * 该类的作用是使用给定的字符串格式在 * Date与String之间进行相互转换。 * 对于该类,需要掌握: * 1:会写日期格式字符串 * 2:记住两个转换方法(String->Date,Date->String)
*构造的时间格式 yyyy-MM-dd HH:mm:ss SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); * String format(Date date) * 按照创建SimpleDateFormat是指定的日期格式, * 将当前给定的date对象表示的时间转换为字符串。 String str = sdf.format(now); * Date parse(String str) * 将给定的字符串按照该日期格式解析为Date对象并返回 String str = "2008-08-08 20:08:00"; SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = sdf.parse(str);
* java.util.Calendar * 日历类,用于操作时间。 * 常用的是格里高利历法(阳历) * 默认创建出来的Calendar实现类的实例表示 * 当前系统时间 * Calendar的getInstance可以根据当前系统所在 * 地区创建合适的实现类,通常是格里高利历法 Calendar calendar = Calendar.getInstance();
* 不能直观看到具体表示的时间。 System.out.println(calendar); * calendar->Date * Date getTime() * Calendar提供的getTime方法可以将其表示的 * 时间以Date形式返回。Date date = calendar.getTime();
* Date->Calendar * void setTime(Date date) * Calendar提供了一个setTime()方法,可以使当前 * Calendar表示给定的date所表示的时间。 calendar.setTime(date);
* Calendar提供了一个set方法,允许我们 * 对当前Calendar的各个时间分量进行单独 * 设定。
* 设置各个时间分量, * 使其表示:2008/08/08 20:08:08 * 需要注意,设置了某个时间分量的值可能会 * 影响其他时间分量的值。 * 例如:设置了年,月,日可能会将星期几改变。//设置年份Calendar calendar = Calendar.getInstance();calendar.set(Calendar.YEAR, 2008); * 设置月份 月份有常量对应,若使用数字从0开始。 * 即:0表示1月,1表示2月。。。calendar.set(Calendar.MONTH, 7);//设置日calendar.set(Calendar.DAY_OF_MONTH, 8);//设置时calendar.set(Calendar.HOUR_OF_DAY, 20);//设置分calendar.set(Calendar.MINUTE, 8);//设置秒calendar.set(Calendar.SECOND, 0);
* Calendar提供了一个get方法,可以获取 * 给定的时间分量所对应的值 Calendar calendar = Calendar.getInstance();//获取年int year = calendar.get(Calendar.YEAR);//获取月int month = calendar.get(Calendar.MONTH)+1;//获取日int day = calendar.get(Calendar.DATE);//获取星期int week = calendar.get(Calendar.DAY_OF_WEEK)-1;System.out.println("星期:"+(week==1?7:week-1)); * Calendar提供了一个方法,可以获取给定的时间分量 * 在当前Calendar表示的日期中所允许的最大值。 * 查看当月的月底int days = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);System.out.println("当月共:"+days+"天"); * 今年共多少天?days = calendar.getActualMaximum(Calendar.DAY_OF_YEAR);System.out.println("今年共:"+days+"天");
* Calendar提供了一个add方法,用来计算时间 * void add(int field,int value) * 对指定的时间分量加上给定的值,若value是负数,则 * 是减去指定的值
Calendar calendar = Calendar.getInstance(); * 查看3年零2个月又25天后是哪天? calendar.add(Calendar.YEAR, 3); calendar.add(Calendar.MONTH, 2); calendar.add(Calendar.DAY_OF_YEAR, 25); //减去4年 calendar.add(Calendar.YEAR, -4);
原文:http://www.cnblogs.com/yuer629/p/7481894.html