JAVA自学教程之其他对象API(二)Date类 & Calendar类(重点掌握)。
Date类(重点)
开发时,会时常遇见时间显示的情况,所以必须熟练Date的应用
- <span style=”font-family:KaiTi_GB2312;font-size:18px;”><strong>import java.util.*;
- public class Main
- {
- public static void main(String[] args){
- long l = System.currentTimeMillis();//1414079892981
- System.out.println(l);
- Date date = new Date();//当前时间
- System.out.println(date);
- Date date2 = new Date(1414079892981l);//将毫秒值封装成对象
- System.out.println(date2);
- }
- }</strong></span>
日期对象和毫秒值之间的转换问题。
毫秒值->日期对象 :1.new Date(TimeMillis);2.setTime()
故:可以通过Date对象的方法对某年、月、日进行操作
日期对象->毫秒值 :getTime();
故:可以通过具体的数值进行运算,两个日期对象无法减,变成毫秒就可以减,得到相隔几天
Boolean after(Date when)
测试此日期是否在指定日期之后。
Boolean before(Date when)
测试此日期是否在指定日期之前。
Object clone()
返回此对象的副本。
int compareTo(Date anotherDate)
比较两个日期的顺序。
Boolean equals(Object obj)
比较两个日期的相等性。
把日期对象转成字符串。
- <span style=”font-family:KaiTi_GB2312;font-size:18px;”><strong>import java.text.DateFormat;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- public class Main
- {
- public static void main(String[] args){
- MethodDemo();
- }
- public static void MethodDemo(){//对日期对象格式化 转换成日期格式的字符串
- Date date = new Date();
- //获取日期对象,具备默认的风格
- DateFormat dateFormat = DateFormat.getDateInstance();//获取日期工厂
- String str_Date = dateFormat.format(date);
- System.out.println(str_Date);//2014-10-24
- DateFormat dateFormat2 = DateFormat.getDateTimeInstance();//获取日期加时间工厂
- String str_Date2 = dateFormat2.format(date);
- System.out.println(str_Date2);//2014-10-24 0:30:22
- //指定格式 FULL:2014年10月24日 星期五 LONG:2014年10月24日 SHORT:14-10-24
- DateFormat dateFormat3 = DateFormat.getDateInstance(dateFormat.FULL);//获取日期工厂
- String str_Date3 = dateFormat3.format(date);
- System.out.println(str_Date3);
- //2014年10月24日 星期五 上午12时39分27秒
- DateFormat dateFormat4 = DateFormat.getDateTimeInstance(dateFormat.FULL,dateFormat.LONG);
- String str_Date4 = dateFormat4.format(date);
- System.out.println(str_Date4);
- //自定义风格 使用的是DateFormat类中的format方法,其中SimpleDateFormat是DateFormat的子类
- DateFormat dateFormat5 = new SimpleDateFormat(“yyyy#MM#dd”);
- String str_Date5 = dateFormat5.format(date);
- System.out.println(str_Date5);
- }
- }</strong></span>
字符串转日期对象
- <span style=”font-family:KaiTi_GB2312;font-size:18px;”><strong>import java.text.DateFormat;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- public class Main
- {
- public static void main(String[] args)throws ParseException{
- MethodDemo();
- }
- //字符串转Date对象 使用的是parse方法
- public static void MethodDemo() throws ParseException{
- //默认风格
- String str_date = ”2014-10-24″;
- DateFormat dateFormat = DateFormat.getDateInstance();
- Date date = dateFormat.parse(str_date);//抛异常
- System.out.println(date);
- //自定义风格
- String str_date2 = ”2014年10月24日”;
- DateFormat dateFormat2 = DateFormat.getDateInstance(DateFormat.LONG);
- Date date2 = dateFormat2.parse(str_date2);//抛异常
- System.out.println(date2);
- String str_date3 = ”2014年–10月–24日”;
- DateFormat dateFormat3 = DateFormat.getDateInstance(DateFormat.LONG);
- dateFormat3 = new SimpleDateFormat(“yyyy年–MM月–dd日”);
- Date date3 = dateFormat3.parse(str_date3);//抛异常
- System.out.println(date3);
- }
- }</strong></span>
Date类练习
2014-10-24 到 2012-12-25日有多少天
1.将字符串转成Date对象
2.将Date对象转成毫秒
3.相减得天数
- import java.text.DateFormat;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- public class Main
- {
- public static void main(String[] args)throws ParseException{
- MethodDemo();
- }
- public static void MethodDemo() throws ParseException{
- String str1 = ”2014-10-24″;
- String str2 = ”2012-12-25″;
- Date date1 = new Date();
- Date date2 = new Date();
- DateFormat dateFormat1 = DateFormat.getDateInstance();
- dateFormat1 = new SimpleDateFormat(“yyyy-MM-dd”);
- date1 = dateFormat1.parse(str1);
- date2 = dateFormat1.parse(str2);
- long time1 = date1.getTime();
- long time2 = date2.getTime();
- long time = Math.abs(time1 - time2);
- int day = Getday(time);
- System.out.println(day+”天”);
- }
- public static int Getday(long time){
- return (int)(time/1000/60/60/24);
- }
- }
Calendar类
- public class Main
- {
- public static void main(String[] args){
- MethodDemo();
- }
- public static void MethodDemo() {
- Calendar ca = Calendar.getInstance();
- int year = ca.get(Calendar.YEAR);
- int mon = ca.get(Calendar.MONTH)+1;//注意要+1,0代表一月
- int day = ca.get(Calendar.DAY_OF_MONTH);
- int week = ca.get(Calendar.DAY_OF_WEEK);//注意国外和我们不一样
- //2014-10-24-星期五
- System.out.println(year+”-”+mon+”-”+day+”-”+GetWeek(week));
- }
- private static String GetWeek(int i) {
- // TODO Auto-generated method stub
- String[] week = {“”,”星期天”,”星期一”,”星期二”,”星期三”,”星期四”,”星期五”,”星期六”};
- return week[i];
- }
- }
练习:
- import java.util.Calendar;
- public class Main
- {
- public static void main(String[] args){
- int year = 2014;
- showyear(year);//判断某一年的二月有几天
- //showday();
- }
- private static void showyear(int year) {
- Calendar ca = Calendar.getInstance();
- ca.set(year,2,1);//设置某年3月1日时间
- ca.add(Calendar.DAY_OF_MONTH, -1);//3月的前一天
- MethodDemo(ca);
- }
- private static void showday() {
- Calendar ca = Calendar.getInstance();
- ca.set(2015,10,25);//设置2015.11.25时间
- ca.add(Calendar.DAY_OF_MONTH, -1);//时间偏移-》2013
- MethodDemo(ca);//2015-10-24-星期二
- ca.add(Calendar.DAY_OF_MONTH, 10);//超过会自动进一个月
- MethodDemo(ca);
- }
- public static void MethodDemo(Calendar ca) {
- int year = ca.get(Calendar.YEAR);
- int mon = ca.get(Calendar.MONTH)+1;
- int day = ca.get(Calendar.DAY_OF_MONTH);
- int week = ca.get(Calendar.DAY_OF_WEEK);
- int hour = ca.get(Calendar.HOUR);
- int minute = ca.get(Calendar.MINUTE);
- int second = ca.get(Calendar.SECOND);
- System.out.print(year+”-”+mon+”-”+day+”-”+GetWeek(week)+”-”+hour+”:”);
- if(minute>9){
- System.out.println(minute+”:”+second);
- }
- else {
- System.out.println(“0″+minute+”:”+second);
- }
- }
- private static String GetWeek(int i) {
- String[] week = {“”,”星期天”,”星期一”,”星期二”,”星期三”,”星期四”,”星期五”,”星期六”};
- return week[i];
- }
- }