3.5 java基础总结日期相关类①Date②Calender

日期相关类①Date②Calender

一、Date
时间原点:1970.1.1 0:00:00:00每一千年会越界,long型
Date now = new Date();
System.currentTimeMillis();距时间原点的毫秒数,常常用来测试代码用了多少毫秒,两句中间放测试代码

Date:
1、得当前时间和日期,常用Date
2、做日期比较,after ,before,equals
3、打印日期字符串,常用SimpleDateFormat类配合使用们可以创建格式化模板
4、根据设置得到指定日期,不方便,使用Calender

Date now = new Date();
SimpleDateFormat S = new SimpleDateFormat("yy年M月dd日 HH:mm:ss");
hh:12小时制,yyyy:四位年,E周几

System.out.prinln(S.format(now));

i18n 国际化
internationaliza tion 第一个i和最后一个n中间还有18个

二、Calender 日历类,抽象类,直接子类格林高治历,现在的公历
Calender cal = Calender.getInstance();得到格林高治的实例,因为new子类实在太麻烦,这里提供了一个得到子类实例的方法
常用,获取日历实例对象

可以快速设定日期

两种方法将Calender转换为Date

Date 的构造
Calender的方法
API

Date date = cal.getTime();
date = new Date(cal.getTimeInmillis());

反过来:cal.getInstanceOf
setTime;

 1 package com.systemTest;
 2 
 3 import java.text.SimpleDateFormat;
 4 import java.util.Calendar;
 5 import java.util.Date;
 6 
 7 import javax.swing.JOptionPane;
 8 
 9 /**
10  * @Author: YuanqiuChen
11  * @Date:2016-3-3-上午10:45:50
12  *
13  *
14  */
15 
16 public class DateTest {
17     public static void main(String[] args) {
18 //        long start = System.currentTimeMillis();
19 //        for (int i = 0; i < 1000; i++) {
20 //            System.out.println("haha");
21 //        }
22 //        long end = System.currentTimeMillis();
23 //        System.out.println(end - start);
24         
25         //两个 一个Date 一个Calendar
26         //1、得当前时间日期,常用Date
27         //2、做日期比较,after before equals
28         //3、打印日期字符串的时候,常用SimpleDateFormat类配合使用,可以自己创建格式化模板
29         //4、根据设置得到指定时间,使用Date不方便,推荐使Calendar
30         
31         Date now = new Date();//得到当前时间毫秒数 util包
32         Date past = new Date(100000000);//用形参代表毫秒数,得到形参所代表的时间
33         System.out.println(now);
34         System.out.println(now.getTime());
35         
36         SimpleDateFormat sdf = new SimpleDateFormat("yy年MM月d日 HH:mm:ss E");
37         System.out.println(sdf.format(now));
38         
39 
40         Calendar cal = Calendar.getInstance();
41         String[] week = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};    
42         
43         //一周的第几天,周日是第一天,星期天是在数组中下标为0
44         System.out.println(cal.get(Calendar.DATE) + week[cal.get(Calendar.DAY_OF_WEEK)-1]);
45         
46         String date = JOptionPane.showInputDialog("请输入年月日,格式2000-07-27");
47         
48         String[] temp = date.split("-");
49         int year = Integer.parseInt(temp[0]);
50         int mon = Integer.parseInt(temp[1]);
51         int day = Integer.parseInt(temp[2]);
52 
53         cal.set(year,mon-1,day);
54         
55         JOptionPane.showMessageDialog(null,year+"年" + mon+"月"+day+"日" + week[cal.get(cal.DAY_OF_WEEK)-1]);
56         
57         //两种方法两Calendar转换为Date
58         Date date1 = cal.getTime();
59         date1 = new Date(cal.getTimeInMillis());
60         
61         //反过来,cal.getInstancof    setTime
62         
63         //转换为date ,用SimpleDateFormat,控制格式E
64         sdf = new SimpleDateFormat("E");
65         System.out.println("hahaha" + sdf.format(date1));
66         
67         //月份从0开始,所以减一
68         cal.set(1991,3-1,27);
69         
70         //一周的第几天,周日是第一天,星期天是在数组中下标为0
71         System.out.println(week[cal.get(Calendar.DAY_OF_WEEK)-1]);
72                 
73         System.out.println(cal.get(Calendar.YEAR));
74         System.out.println(cal.get(Calendar.DATE));
75         System.out.println(cal.get(Calendar.MONTH));
76         
77         System.out.println(sdf.format(cal.getTime()));
78         
79     }
80 }
DateTest
原文地址:https://www.cnblogs.com/chenyuanqiu2008/p/5251882.html