日期类的使用
Java中涉及时间的常用类分别如下:
Date类
Date中有很多方法被废弃掉了,大多用Calendar取代了,一般不会用Date类,Date的使用方法如下:
Date d=new Date();//d.getTime()表示当前时刻的毫秒数,直接打印d会是一个带有格式的日期
DateFormat类
DateFormat是一个抽象类,人们在实现时都会实例化他的子类,就是SimpleDateFormat类,这个类的作用就是实现Date和字符串之间的相互转化;代码如下:
//将时间转换成某个固定格式的字符串
DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String str = df.format(new Date(4000000));
System.out.println(str);
//将某一固定格式的字符串转换为Date时间对象
DateFormat df2 = new SimpleDateFormat("yyyy年MM月dd日 hh时mm分ss秒");
Date date = df2.parse("1983年5月10日 10时45分59秒");
System.out.println(date);
//这个固定的格式可以有很多种,可以自定义
Calendar类
Calendar是一个功能十分强大的类,它可以按照你的要求随意的处理时间,可以获得日期,设置日期,修改日期,和Date对象相互转化,也可以计算时间。
//获得日期的相关元素
Calendar calendar = new GregorianCalendar(2999,10,9,22,10,50);
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
int day = calendar.get(Calendar.DATE); //也可以使用:DAY_OF_MONTH。
int weekday = calendar.get(Calendar.DAY_OF_WEEK); //星期几。 1-7. 1:星期日,2星期一,。。。7是星期六。
System.out.println(year) ;
System.out.println(month) ; //0-11表示对应的月份。0是1月,1月是2月.....11是12月。
System.out.println(weekday);
System.out.println(day);
//设置日期的相关元素
Calendar c2 = new GregorianCalendar();
c2.set(Calendar.YEAR, 8012);
System.out.println(c2);
//日期的计算
Calendar c3 = new GregorianCalendar();
c3.add(Calendar.YEAR, -100);
System.out.println(c3) ;
//日期对象和时间对象的转化
Date d4 = c3.getTime();
Calendar c4 = new GregorianCalendar();
c4.setTime(new Date());
运行结果为:
2999
10
7
9
java.util.GregorianCalendar[time=?,areFieldsSet=false,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=8012,MONTH=3,WEEK_OF_YEAR=15,WEEK_OF_MONTH=2,DAY_OF_MONTH=12,DAY_OF_YEAR=102,DAY_OF_WEEK=6,DAY_OF_WEEK_IN_MONTH=2,AM_PM=1,HOUR=4,HOUR_OF_DAY=16,MINUTE=22,SECOND=21,MILLISECOND=160,ZONE_OFFSET=28800000,DST_OFFSET=0]
java.util.GregorianCalendar[time=?,areFieldsSet=false,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=1919,MONTH=3,WEEK_OF_YEAR=15,WEEK_OF_MONTH=2,DAY_OF_MONTH=12,DAY_OF_YEAR=102,DAY_OF_WEEK=6,DAY_OF_WEEK_IN_MONTH=2,AM_PM=1,HOUR=4,HOUR_OF_DAY=16,MINUTE=22,SECOND=21,MILLISECOND=161,ZONE_OFFSET=28800000,DST_OFFSET=0]