【javaSE】Date和Calendar类

来源:互联网 发布:阿里云视频点播服务 编辑:程序博客网 时间:2024/05/21 22:27

************************************************************************  ****原文:blog.csdn.net/clark_xu 徐长亮的专栏************************************************************************

2.1 Date类及常用方法

java.util.Date类用于封装日期和时间信息。目前Date类的大多数用于进行时间分量计算的方法已经被Calendar取代。

无参的构造方法,构造的Date对象封装当前的日期和时间信息

Date date=new Date();

Date类已经重新了toString对象

getTime()方法:获取197011日距今的毫秒数,例如

long time=date.getTime();

setTime()方法通过毫秒数设置Date对象的时间,例如

date.setTime(date.getTime()+ 24*60 *60*1000);

2.2 SimpleDateFormat

java.text.SimpleDateFormat类用于实现Date对象和字符串表示的日期信息直接的转换。其构造方法为:

SimpleDateFormate sdf=new SimpleDateFormat(“yyyy-MM-dd”)

Date date=new Date();

SimpleDateFormatformat方法用于将日期数据按照指定的格式转换为字符串

2.2.1 parse方法

parse方法用于按照特定格式将表示时间的字符串转换为Date对象。例如:

String dateStr=”2013-01-06”

SimpleDateFormate sdf=new SimpleDateFormat(“yyyy-MM-dd”);

Date date=sdf.parse(dateStr);

2.2.2 常用格式字符串

年: yyyy, yy

月:MM

日:dd    

星期:E 可用值或者参数:Sun,

上午:a 可用值后者参数为:PMAM

24小时制:HH

12小时制:hh

分钟:mm

秒:ss

2.3 DateFormat

DateFormatSimpleDateFormat的父类,其工厂方法getXXXInstance可用返回不同地域的日期格式DateFormat对象,例如

DateFormart df2=DateFormat.getDateInstane(DateFormat.MEDIUM,Locale.CHINA);

String dateStr=df2.format(new Date());

2.4 Calendar

java.util.Calendar类用于封装日历信息,其主要作用在于可用对时间分量进行运算。Calendar是抽象类,其具体自雷针对不同国家的日历系统,其中最广泛的的GregorianCalendar(格里高利历),例如

new GregorianCalendar(zone,aLocale);

         通常使用Clendar的静态方法getInstance获得Calendar对象;getInstance方法根据系统的地域细心返回不同的Calenar类的实现

2.4.1 Calendar分量运算

Calendar通过setget方法对各个世界分量进行设置和获取;时间分量包括:Calendar.YEAR, MOUNTH, DATE, DAY_OF_WEEK, DAY_OF_YEAR, WEEK_OF_MOUTH,WEEK_OF_YEAR等待

         例如:Calendar c=Calendar.getInstance();

                     c.set(Calendar.YEAR,2013)

                     c.set(Calendar.MOUNTH,Calendar.JANUARY);

                     c.set(Calendar.DATE,29);

         注:Calendar对象自动适应,因为229日没有,自动变为31

2.4.2 Calendar常用API

add方法对某个时间分量进行增加:

         c.add(Calendar.MOUNTH,1);

         getActualMaximum可以返回某个时间分量的最大值

         c. getActualMaximum(Calendar.DATE)

0 0