时间类总结

    技术2022-07-10  122

    Date类

    java.util.DateDate的每一个实例用于表示一个确切的时间点,内部维护了一个long值,该值保存的是自1970年1月1日00:00:00到当前Date所表示时间之间经过的毫秒数。由于Date自身设计问题(主要是时区问题),所以Date大部分的操作时间的方法都被声明为过时方法,实际开发中已经不再建议使用了Date类的构造方法Date() 无参构造Date(long time) 有长整型参数的构造方法其他构造方法已经废弃不用Date类常用方法long getTime();返回自1970年1月1日00:00:00以来此对象表示的毫秒数setTime(long time);设置该对象的毫秒数String toString();将Date对象转换为字符串 package SE01.n6Util; import java.util.Date; public class Demo01Date { public static void main(String[] args) { Date date =new Date(); System.out.println(date); date.getYear(); System.out.println(date.getMinutes()); long time=date.getTime(); System.out.println(time);//获取毫秒数,内部维护的long值 time+=1000*60*60*24;//将毫秒数往后推一天 date.setTime(time);//将推后一天的毫秒数设置回Date对象 System.out.println(date); Date date2=new Date(time);//第二种构造方法 System.out.println(date2); } }

    Calendar类

    java.util.Calendar日历类,是一个抽象类,定义了操作日期的相关方法常用实现类:java.util.GregorianCalender,即:阳历Calendar常用方法: 1.static Calendar getInstance();该方法可以获取一个当前系统所在地区使用的实现类对象,大部分地区返回的都是阳历 2.Date getTime();返回代表该日历对象的Date值 3.void setTime(Date date);使用指定的Date设置该日历对象 4.get(int field);获取某个日历字段的值 5.void set(int field,int x);设置日历字段的值常用的日历字段:AM_PM 上午或下午YEAR 年MONTH_OF_YEAR 月DATE 日HOUR 12小时制HOUR_OF_DAY 24小时制MINUTE 分钟SECOND 秒MILLISECOND 毫秒 package SE01.n7Canlendar; import java.util.Calendar; import java.util.Date; public class Demo01Calendar { public static void main(String[] args) { Calendar calendar=Calendar.getInstance(); System.out.println(calendar); Date date =calendar.getTime();//获取calendar对象中的Date实例 System.out.println(date); long time=date.getTime();//获取毫秒数 time+=1000*60*60*24; date.setTime(time); calendar.setTime(date); System.out.println(calendar); } }

    Calender的get方法

    /*

    Calendar提供了一个方法:get(int field);获取某个日历字段的值该方法可以获取当前Calendar所表示的日期中给定的时间分量所对应的值不同的int值表示不同的时间分量。而Calendar提供了大量的静态常量用于说明这些时间分量

    */

    package SE01.n7Canlendar; import java.util.Calendar; public class Demo02Get { public static void main(String[] args) { Calendar calenda = Calendar.getInstance(); int year=calenda.get(Calendar.YEAR); System.out.println(year); int month=calenda.get(Calendar.MONTH)+1; System.out.println(month); int day=calenda.get(Calendar.DAY_OF_MONTH);//日 System.out.println(day); int week=calenda.get(Calendar.WEEK_OF_MONTH); System.out.println(week); int h=calenda.get(Calendar.HOUR_OF_DAY); System.out.println(h); int m=calenda.get(Calendar.MINUTE); System.out.println(m); int s=calenda.get(Calendar.SECOND); System.out.println(s); int apmp=calenda.get(Calendar.AM_PM); String t=""; if(apmp>0) { t="下午"; }else { t="上午"; } System.out.println(year+"年"+month+"月"+day+"日"+t+h+":"+m+":"+s); } }

    Calendar的set方法和add方法

    /*

    void set(int field,int x);设置日历字段的值设置当前Calendar指定时间分量所对应的值void add(int field,int amount)对指定时间分量累加给定值,若amount是负数则减去 */ package SE01.n7Canlendar; import java.util.Calendar; import java.util.GregorianCalendar; public class Demo03Others { public static void main(String[] args) { Calendar c=Calendar.getInstance(); c.set(Calendar.YEAR, 2000); c.set(Calendar.MONTH,Calendar.AUGUST);//设置月 c.set(Calendar.DATE, 8);//日 System.out.println(c.getTime());//Tue Aug 08 16:50:47 CST 2000 c.add(Calendar.YEAR, 30); System.out.println(c.getTime());//Thu Aug 08 16:50:47 CST 2030 GregorianCalendar g=new GregorianCalendar(); g.isLeapYear(2020);//f } }

    DateFormat类

    /*

    DateFormat是一个抽象的时间格式化类DateFormat以与语言无关的方式格式化(Date变字符串)并解析(字符串Date)日期或时间,DateFormat可帮助进行格式化并解析任何语言环境的日期。对于月,星期,甚至日历格式(阴历和阳历),其代码可完全与语言环境的约定无关。在格式化和解析日期时间的过程中,其子类SimpleDateFormat更为常用SimpleDateFormat类构造方法simpleDateFormat()simpleDateFormat(String pattern)按照指定的模式创建SimpleDateFormat对象 */ package SE01.n8dateFomat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class Demo01DateFormat { public static void main(String[] args) { // 1.格式化:Date变String Date date=new Date(); SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:ss E a"); String line=sdf.format(date); System.out.println(line);//2020-06-30 21:37 周二 下午 // 2.解析:String变Date String str="1999-06-03 16:06:00"; SimpleDateFormat sdf2=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date2=new Date(); try { date2=sdf2.parse(str); } catch (ParseException e) { e.printStackTrace(); } System.out.println(date2);//Thu Jun 03 16:06:00 CST 1999 } }

    Processed: 0.012, SQL: 9