Date类
构造:
Date() 使用当前的日期时间
Date(long millisec) 1970-01-01 00:00:00 时刻加一个毫秒数
方法:
boolean after(Date d) 是否在指定日期之后
boolean before(Date d) 是否在指定日期之前
Object clone() 复制一个对象
int compareTo(Date d) 相等返回0,小于d返回负数,大于d返回正数
boolean equals(Object d) 相等返回true,不等返回false
long getTime() 返回毫秒数
void setTime(long millisec) 用毫秒数设置时间
String toString() 转换为字符串
import java.util.Date;
public class DateDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
Date d = new Date();
Date dClone = (Date)d.clone();
Date dBefore = new Date(System.currentTimeMillis()-60000);//当前时刻向前一分钟
Date dAfter =new Date(System.currentTimeMillis()+60000);//当前时刻向后一分钟
System.out.println(d.toString());//Sun Feb 19 00:07:31 CST 2017
System.out.println(System.currentTimeMillis());//1487434051528
System.out.println(d.getTime());//1487434051512
System.out.println(d.before(dAfter));//true
System.out.println(d.after(dBefore));//true
System.out.println(dBefore.compareTo(dAfter));//-1
System.out.println(d.equals(dClone));//true
System.out.println(d==dClone);//false
}
}
SimpleDateFormat类
用来定义时间格式
yyyy-MM-dd HH:mm:ss:SSS a E zzz G h D F w W k K
年-月-日 时:分:秒:毫秒 AM/PM 星期 时区 纪元 12格式小时 一年中的日 月中的周几 一年中第几周 一月中第几周 24小时 格式小时
构造
SimpleDateFormat(String pattern)
方法
String format(Date d) 将d按照sdf的格式格式化
Date parse(String date) 将字符串date转换为Date类型
Calendar类
实例获取
Calendar c = Calendar.getInstance();
方法
c.set(2017,01,01) 设置年月日
c.get(Calendar.XXX) 获取c的某一个部分,直接输出Calendar.XXX为当前时间值,要获取c的对应部分需要用get
import java.util.Calendar;
public class CalendarDemo {
public static void main(String []args){
Calendar c = Calendar.getInstance();//当前为2017-02-19 00:45
System.out.println(c.get(Calendar.YEAR));
System.out.println(c.get(Calendar.MONTH)+1);//月份从0开始,目前是2月,直接输出为1,所以需要+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));
System.out.println(c.get(Calendar.DAY_OF_WEEK));//星期从日开始为1
}
}
参考列表:
字母描述示例
G纪元标记AD
y四位年份2001
M月份July or 07
d一个月的日期10
h A.M./P.M. (1~12)格式小时12
H一天中的小时 (0~23)22
m分钟数30
s秒数55
S毫秒数234
E星期几Tuesday
D一年中的日子360
F一个月中第几周的周几2 (second Wed. in July)
w一年中第几周40
W一个月中第几周1
aA.M./P.M. 标记PM
k一天中的小时(1~24)24
K A.M./P.M. (0~11)格式小时10
z时区Eastern Standard Time
'文字定界符Delimiter
"单引号`
Calendar.YEAR年份
Calendar.MONTH月份
Calendar.DATE日期
Calendar.DAY_OF_MONTH日期,和上面的字段意义完全相同
Calendar.HOUR12小时制的小时
Calendar.HOUR_OF_DAY24小时制的小时
Calendar.MINUTE分钟
Calendar.SECOND秒
Calendar.DAY_OF_WEEK星期几
字符描述例子
c完整的日期和时间Mon May 04 09:51:52 CDT 2009
FISO 8601 格式日期2004-02-09
DU.S. 格式日期 (月/日/年)02/09/2004
T24小时时间18:05:19
r12小时时间06:05:19 pm
R24小时时间,不包含秒18:05
Y4位年份(包含前导0)2004
y年份后2位(包含前导0)04
C年份前2位(包含前导0)20
B月份全称February
b月份简称Feb
m2位月份(包含前导0)02
d2位日子(包含前导0)03
e2位日子(不包含前导0)9
A星期全称Monday
a星期简称Mon
j3位年份(包含前导0)069
H2位小时(包含前导0), 00 到 2318
k2位小时(不包含前导0), 0 到 2318
I2位小时(包含前导0), 01 到 1206
l2位小时(不包含前导0), 1 到 126
M2位分钟(包含前导0)05
S2位秒数(包含前导0)19
L3位毫秒(包含前导0)047
N9位纳秒(包含前导0)047000000
P大写上下午标志PM
p小写上下午标志pm
z从GMT的RFC 822数字偏移-0800
Z时区PST
s自 1970-01-01 00:00:00 GMT的秒数1078884319
Q自 1970-01-01 00:00:00 GMT的毫妙1078884319047