1.与日期时间相关的类及它们的关系图:
java.lang.System;
java.util.Date;
java.sql.Date;
java.sql.Time;
java.sql.Timestamp;
java.text.DateFormate(抽象类);
java.text.SimpleDateFormate;
java.util.Carlendar(抽象类);
java.util.GregorianCalendar;
java.util.TimeZone;
2.获取当前时间的几种常用方式:
方式一:
java.uti.Date: Datedate=new Date();
(主要用于显示构造和显示当前时间)
方式二:
java.sql.Date: Datedate=new Date(System.currentTimeMillis());
(主要用于对数据date字段进行插入)
方式三:
java.sql.Timestamp: Timestamp t=newTimestamp(System.currentTimeMillis());
(主要用于对数据库datetime和timestamp字段进行插入)
方式四:
java.sql.Time: Time t=new Time (System.currentTimeMillis());
(主要用于对数据库time字段进行插入以及获取当前的时间(HH:mm:ss))
方式五:
long millis=System.currentTimeMillis();
(主要用于计算较小的时间差值)
方式六:
Calendar cal=Calendar.getInstance();
(主要用于构造一个当前时间的日历对象来获取对应的某个字段如年,月,日等)
方式七:
Calendarcal=GregorianCalendar.getInstance(TimeZone.getTimeZone("Japan"));
(主要用于构造指定时区的日历对象来获取对应的某个字段如年,月,日等)
3.根据已有数据来构造日期,时间或者日历对象:
a.根据已有日期对象来构造日历对象:
Calendar cal=Calendar.getInstance();
cal.setTime(date);
b.根据已有日期时间字符串来构造日期对象:
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Dated=sdf.parse("1976-09-09 00:10:00");
方法二:
Timestampt=Timestamp.valueOf("1976-09-09 00:10:00");
4.关于日期格式化:
使用java.text.SimpleDateFormat类:
第一步:构造具有指定格式的SimpleDateFormat对象
方式①:SimpleDateFormatsdf=new SimpleDateFormat(“yyyy/MM/ddHH:mm:ss”);
方式②:SimpleDateFormatsdf=new SimpleDateFormat();
sdf. applyPattern(“yyyy/MM/dd HH:mm:ss”);
第二步:使用SimpleDateFormat对象的format方法
sdf.format(new java.util.Date());
(具体格式参见SimpleDateFormat类)
5.数据库相关问题:
① mysql数据库相关字段设置说明
②设置相关字段时使用的方法:
设置date字段:setDate(int,java.sql.Date);
设置dateTime和timestamp字段:setTimestamp(int,java.sql.Timestamp);
设置time字段:setTime(int,java.sql.Time);
6.关于时区问题:
使用例子:
Calendarcal=GregorianCalendar.getInstance(TimeZone.getTimeZone("PRC"));
具体参见java.util.TimeZone类
7.关于日期加减问题:
使用java.util.Calendar类的字段操作方法:add(),set(),roll()(等同于add(),除了在完成调用后,更大的字段无变化)方法:
例:Calendarc=Calendar.getInstance();
c.add(Calendar.YEAR,10);
具体参见java.util.Calendar类