Java学习笔记【七、时间、日期、数字】

参考:http://www.runoob.com/java/java-date-time.html

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
a A.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.HOUR 12小时制的小时
Calendar.HOUR_OF_DAY 24小时制的小时
Calendar.MINUTE 分钟
Calendar.SECOND 秒
Calendar.DAY_OF_WEEK 星期几

字符 描述 例子
c 完整的日期和时间 Mon May 04 09:51:52 CDT 2009
F ISO 8601 格式日期 2004-02-09
D U.S. 格式日期 (月/日/年) 02/09/2004
T 24小时时间 18:05:19
r 12小时时间 06:05:19 pm
R 24小时时间,不包含秒 18:05
Y 4位年份(包含前导0) 2004
y 年份后2位(包含前导0) 04
C 年份前2位(包含前导0) 20
B 月份全称 February
b 月份简称 Feb
m 2位月份(包含前导0) 02
d 2位日子(包含前导0) 03
e 2位日子(不包含前导0) 9
A 星期全称 Monday
a 星期简称 Mon
j 3位年份(包含前导0) 069
H 2位小时(包含前导0), 00 到 23 18
k 2位小时(不包含前导0), 0 到 23 18
I 2位小时(包含前导0), 01 到 12 06
l 2位小时(不包含前导0), 1 到 12 6
M 2位分钟(包含前导0) 05
S 2位秒数(包含前导0) 19
L 3位毫秒(包含前导0) 047
N 9位纳秒(包含前导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

posted @ 2017-02-19 00:52  l.shane  阅读(845)  评论(0编辑  收藏  举报