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 }