1.Date(方法基本为过时方法)java
//建立日期对象 Date d = new Date(); //获取年份得加上1900 Deprecated System.out.println("year:"+(d.getYear()+1900)); //获取月份+1 Deprecated System.out.println("month:"+(d.getMonth()+1)); //每个月中的第几天(几号) Deprecated System.out.println("date:"+d.getDate()); //小时 Deprecated System.out.println("hour:"+d.getHours()); //分钟 Deprecated System.out.println("minutes:"+d.getMinutes()); //秒 Deprecated System.out.println("seconds:"+d.getSeconds()); //星期,数字0表明的是星期天 Deprecated System.out.println("week:"+d.getDay()); //建立时间2013-10-29 09:15:59 ,年要减去1900 ,月份减1 Deprecated Date 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:59.net
2.Calendarcode
Calendar c = Calendar.getInstance(); c.set(2013, 9, 28, 5, 25, 36);//设定时间为:2013-10-28 5:25:36 c.add(Calendar.DATE, 1);//日期加1后为 2013-10-29 5:25:36,其余的也可这样设置 //年 System.out.println(c.get(Calendar.YEAR)); //月份,注意加1 System.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));
运行结果:orm
2013
10
29
5
25
36
3对象
3.GregorianCalendar类blog
GregorianCalendar
是 Calendar
的一个具体子类,提供了世界上大多数国家使用的标准日历系统。继承
GregorianCalendar类对象的建立ci
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));//false
4.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()); }
参考:http://blog.csdn.net/shibenjie/article/details/4263912#comments