1.Date(方法基本为过期方法)
//创建日期对象Date d = new Date();//获取年份得加上1900 DeprecatedSystem.out.println("year:"+(d.getYear()+1900));//获取月份+1 DeprecatedSystem.out.println("month:"+(d.getMonth()+1));//每月中的第几天(几号) DeprecatedSystem.out.println("date:"+d.getDate());//小时 DeprecatedSystem.out.println("hour:"+d.getHours());//分钟 DeprecatedSystem.out.println("minutes:"+d.getMinutes());//秒 DeprecatedSystem.out.println("seconds:"+d.getSeconds());//星期,数字0代表的是星期天 DeprecatedSystem.out.println("week:"+d.getDay()); //创建时间2013-10-29 09:15:59 ,年要减去1900 ,月份减1 DeprecatedDate dd = new Date(2013-1900,10-1,29,9,15,59);SimpleDateFormat smf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");System.out.println(smf.format(dd));
运行结果:
year:2013
month:10 date:29 hour:9 minutes:43 seconds:56 week:2 2013-10-29 09:15:592.Calendar
Calendar c = Calendar.getInstance();c.set(2013, 9, 28, 5, 25, 36);//设定时间为:2013-10-28 5:25:36c.add(Calendar.DATE, 1);//日期加1后为 2013-10-29 5:25:36,其他的也可这样设置//年System.out.println(c.get(Calendar.YEAR));//月份,注意加1System.out.println(c.get(Calendar.MONTH)+1);//月份中的第几天System.out.println(c.get(Calendar.DATE));//小时System.out.println(c.get(Calendar.HOUR));//分钟System.out.println(c.get(Calendar.MINUTE));//秒System.out.println(c.get(Calendar.SECOND));//星期:1代表星期日,2代表星期一,依次类推System.out.println(c.get(Calendar.DAY_OF_WEEK));
运行结果:
2013
10 29 5 25 36 33.GregorianCalendar类
GregorianCalendar
是 Calendar
的一个具体子类,提供了世界上大多数国家使用的标准日历系统。
GregorianCalendar类对象的创建
GregorianCalendar有自己的构造方法,而其父类Calendar没有公开的构造方法。
GregorianCalendar()
在具有默认语言环境的默认时区内使用当前时间构造一个默认的 GregorianCalendar。GregorianCalendar(int year, int month, int dayOfMonth)
在具有默认语言环境的默认时区内构造一个带有给定日期设置的 GregorianCalendar。GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute)
为具有默认语言环境的默认时区构造一个具有给定日期和时间设置的 GregorianCalendar。GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute, int second)
为具有默认语言环境的默认时区构造一个具有给定日期和时间设置的 GregorianCalendar。创建一个代表当前日期的GregorianCalendar对象
GregorianCalendar gc = new GregorianCalendar();
//创建一个代表2013年10月29日的GregorianCalendar对象(月份要减去1)
GregorianCalendar gc = new GregorianCalendar(2013,10-1,29);
字段属性继承父类Calendar
另外:GregorianCalendar有下面一个方法:
isLeapYear
(int year)
//确定给定的年份是否为闰年
GregorianCalendar cc = new GregorianCalendar();
System.out.println(cc.isLeapYear(2013));//false4.SimpleDateFormat
public class SimpleDateFormat extends DateFormat
SimpleDateFormat
是一个以与语言环境相关的方式来格式化和分析日期的具体类。它允许进行格式化(日期 -> 文本)、分析(文本 -> 日期)和规范化。
所以本类可以实现:String 到 Date Date到String的互转,如下:
//注意构造函数中是SimpleDateFormat类解析日期的模式,大小写代表的意义完全不一样哦
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//日期到字符串的转换
String today = df.format(new Date());
//字符串到日期的转换
Date date = df.parse("2013-10-29 09:55:56");
System.out.println(df.format(new Date()));
5.日期类对象之间的互转
a. Date类对象与long型时间的互转
//将Date类的对象转换为long型时间
Date d= new Date();
//使用对象的getTime()方法完成
long dLong = d.getTime();
//将long型时间转换为Date类的对象
long time = 1290876532190L;
//使用Date的构造方法完成
Date d2 = new Date(time);
b. Calendar对象和long型时间之间的互转
// 将Calendar对象转换为相对时间
Calendar c = Calendar.getInstance();
long t1 = c.getTimeInMillis();
// 将相对时间转换为Calendar对象
Calendar c1 = Calendar.getInstance();
long t = 1252785271098L;
c1.setTimeInMillis(t1);
c. Calendar对象和Date对象之间的互转
// 将Calendar对象转换为相对时间
Calendar c = Calendar.getInstance();
Date d = c.getTime();
// 将相对时间转换为Calendar对象
Calendar c1 = Calendar.getInstance();
Date d1 = new Date();
//通过setTime()方法后,日历c1所表示的日期就d1的日期
c1.setTime(d1);
6.几个常用方法
a.判断是否为瑞年
// 给定一个年份判断该年份是否为闰年public static boolean isLeapYear(int year) { GregorianCalendar calendar = new GregorianCalendar(); return calendar.isLeapYear(year);}
b.获取当前日期的字符串表示形式
// 获取当前日期的字符串表示形式public static String getCurrentDate() { SimpleDateFormat dateFormat = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss"); return dateFormat.format(System.currentTimeMillis());}
c.获得距离今天n天的那一天的日期
// 获得距离今天n天的那一天的日期public static String getDate(int days) { Calendar c = Calendar.getInstance(); c.add(Calendar.DAY_OF_MONTH, days);// 得到前n天 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return sdf.format(c.getTime());}
d.给出任意一个年月日得到该天是星期几
// 给出任意一个年月日得到该天是星期几//返回值:0 代表星期日,1代表星期1,2代表星期2,以此类推public static int getWeek(String date) { // 注意参数的大小写格式 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd"); Calendar c = Calendar.getInstance(); try { Date d = dateFormat.parse(date); c.setTime(d); } catch (ParseException e) { } return c.get(Calendar.DAY_OF_WEEK) - 1;}
e.获得距离指定日期n天的那一天的日期
//获得距离指定日期n天的那一天的日期public static String getDistanceDay(String date, int day) { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date d; Calendar c =Calendar.getInstance(); try { d = dateFormat.parse(date); c.setTime(d); c.add(Calendar.DATE, day); } catch (ParseException e) { e.printStackTrace(); } return dateFormat.format(c.getTime());}
参考: