Java的时间和日期

java.util 包提供了 Date 类来封装当前的日期和时间

Date( ) 这个构造函数使用当前日期和时间来初始化对象
Date(long millisec) 这个构造函数接收一个参数,该参数是从1970年1月1日起的毫秒数

Date对象的基本方法

toString( ) //把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy 其中: dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat)
after(Date date) //若当调用此方法的Date对象在指定日期之后返回true,否则返回false
before(Date date) //若当调用此方法的Date对象在指定日期之前返回true,否则返回false
clone( ) //返回此对象的副本
compareTo(Date date) //比较当调用此方法的Date对象和指定日期。两者相等时候返回0。调用对象在指定日期之前则返回负数。调用对象在指定日期之后则返回正数。
equals(Object date) //当调用此方法的Date对象和指定日期相等时候返回true,否则返回false
getTime( ) //返回自1970年1月1日00:00:00 GMT 以来此 Date 对象表示的毫秒数
setTime(long time) //用自1970年1月1日00:00:00 GMT以后time毫秒数设置时间和日期
hashCode( ) //返回此对象的哈希码值

1.获取当前日期时间

import java.text.SimpleDateFormat;
import java.util.*;

public class JavaDate {
    public static void main(String args[]){
        Date currentDate = new Date();
        System.out.println(currentDate.toString());
        
        SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        System.out.println(ft.format(currentDate));
    }
}

2.使用printf格式化日期

c:包括全部日期和时间信息 //星期六 十月 27 14:21:20 CST 2007
F:"年-月-日"格式 //2007-10-27
D:"月/日/年"格式 //10/27/07
r:"HH:MM:SS PM"格式(12时制)//02:25:51 下午
T:"HH:MM:SS"格式(24时制) //14:28:16
R:"HH:MM"格式(24时制)//14:28
import java.text.SimpleDateFormat;
import java.util.*;

public class JavaDate {
    public static void main(String args[]){
        Date currentDate = new Date();
        System.out.printf("%tc%n", currentDate);
        System.out.printf("%tF%n", currentDate);
        System.out.printf("%tD%n", currentDate);
        System.out.printf("%tr%n", currentDate);
        System.out.printf("%tT%n", currentDate);
        System.out.printf("%tR%n", currentDate);
    }
}

3.sleep()方法

public class JavaDate {
    public static void main(String args[]){
        
        try {
            System.out.println("哈哈");
            Thread.sleep(1000*5); //休眠5秒
            System.out.println("呵呵");
        } catch (Exception e) {
            System.out.println("异常");
        }
    }
}

4.Calendar类

Calendar类的功能要比Date类强大很多,而且在实现方式上也比Date类要复杂一些。

Calendar类是一个抽象类,在实际使用时实现特定的子类的对象,创建对象的过程对程序员来说是透明的,只需要使用getInstance方法创建即可。

4.1Calendar类对象字段类型

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    星期几

4.2Calendar类对象信息的设置

Calendar c1 = Calendar.getInstance();

set():
c1.set(2009, 6 - 1, 12);//把Calendar对象c1的年月日分别设这为:2009、6、12
c1.set(Calendar.DATE,10);//把 c1对象代表的日期设置为10号,其它所有的数值会被重新计算

add():
c1.add(Calendar.DATE, 10); //把c1对象的日期加上10,也就是c1 10天后的日期,其它所有的数值会被重新计算
c1.add(Calendar.DATE, -10); //把c1对象的日期减去10,也就是c1 10天前的日期,其它所有的数值会被重新计算

public class JavaDate {
    public static void main(String args[]){
        Calendar defaut = Calendar.getInstance();
        defaut.set(Calendar.DATE, 10);
        System.out.println(defaut.get(Calendar.DATE));
        
        defaut.add(Calendar.DATE, 30);
        System.out.println(defaut.get(Calendar.DATE));
        System.out.println(defaut.get(Calendar.MONTH));
    }
}

5.GregorianCalendar类

Calendar类实现了公历日历,GregorianCalendar是Calendar类的一个子类,提供了世界上大多数国家/地区使用的标准日历系统

注意:月份是从0开始计数的

import java.util.*;

public class JavaDate {
    public static void main(String args[]){
        
        String months[] = {
                  "Jan", "Feb", "Mar", "Apr",
                  "May", "Jun", "Jul", "Aug",
                  "Sep", "Oct", "Nov", "Dec"};
        GregorianCalendar gCl = new GregorianCalendar();
        System.out.print("Date: ");
        System.out.print(months[gCl.get(Calendar.MONTH)]);
        System.out.print(" " + gCl.get(Calendar.DATE) + " ");
        System.out.println(gCl.get(Calendar.YEAR));
        System.out.print("Time: ");
        System.out.print(gCl.get(Calendar.HOUR) + ":");
        System.out.print(gCl.get(Calendar.MINUTE) + ":");
        System.out.println(gCl.get(Calendar.SECOND));
        
        // 测试当前年份是否为闰年
        if(gCl.isLeapYear(gCl.get(Calendar.YEAR))) {
            System.out.println("当前年份是闰年");
        } else {
             System.out.println("当前年份不是闰年");
        }
    }
}

你可能感兴趣的:(Java的时间和日期)