Java日期和时间

java.util包提供了Date类来封装当前的日期和时间,Date类提供两个构造函数聊实例化Date对象。

Date()//使用当前日期和时间来初始化对象;

Date(long millisec)//接收一个参数,该参数是从1970年1月1日起的毫秒数;

创建Date对象后,可调用以下方法:

序号 方法和描述
1

boolean after(Date date)

若当调用此方法的Date对象在指定日期之后返回true,否则返回false

2

boolean before(Date date)


若当调用此方法的Date对象在指定日期之前返回true,否则返回false

3

Object clone()

返回此对象的副本

4

int compareTo(Date date)

比较当调用此方法的Date对象和指定日期,两者相等时候反复0.调用对象在指定日期之前返回负数,在之后返回正数。

5

int compareTo(Object object)

若object是Date类型则操作同等于compareTo(Date date),否则抛出ClassCastException

6

boolean equals(Object object)

当调用此方法的Date对象和指定日期相等时候返回true,否则返回false

7

long getTime()

返回自1970年1月1日 00:00:00GMT以来此Date对象表示的毫秒数

8

int hashTime()

返回此对象的哈希码值

9

void setTime(long time)

用自1970年1月1日 00:00:00GMT以后time毫秒数设置日期和时间

10

String toString()

把此Date对象转换为以下形式的String:dow mon dd hh:mm:ss zzz yyyy其中dow是一周中的某天(Sun,Mon,Tue,Wed,Thu,Fri,Sat)

获取当前日期时间

import java.util.Date;

public class DateDemo{
    public static void main(String args[]){
        Date date = new Date();//初始化Date对象
        System.out.println(date.toString());//使用toString()函数显示日期时间
    }
}

运行结果

Tue Sep 03 22:49:12 CDT 2019

——————————————————————————

日期比较(三种方法)

1.getTime()方法获取两个日期,然后比较两个日期的值;

2.before(),after(),equals();例如:一个月的12号比18号早,则new Date(99,2,12).before(new Date(99,2,18))返回true;

3.compreTo()方法,由Comparable接口定义的,Date类实现了这个接口;

——————————————————————————————————————

使用SimpleDateFormat格式化日期

SimpleDateFormat 是一个以语言环境敏感的方式来格式化和分析日期的类,SimpleDateFormat允许你选择任何用户自定义日期时间来运行,例如:

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

public class DateDemo{
    public static void main(String args[]){
        Date nowDate = new Date();
        SimpleDateFormat ft =new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
      //确立转换格式 System.out.println(ft.format(nowDate)); } }

运行结果

2019-09-03 23:11:51

——————————————————————

使用print格式化日期

以%t开头以字母(以下的字母)结尾

转换符 说明 事例
c 包括全部日期和时间信息 星期二 九月 03 23:23:12 CST 2019 
F "年-月-日"格式 2019-09-05
D “月/日/年”格式 10/23/05
r “HH:MM:SS PM”格式,12小时 05:25:51 下午
T “HH:MM:SS”格式,24小时 05:25:51
R "HH:MM"格式,24小时 05:25

事例:

import java.util.Date;

public class DateDemo{
    public static void main(String args[]){
        Date date =new Date();
        System.out.println("HH:MM:SS格式:%tT%n",date);
    }
}

运行结果

HH:MM:SS格式:23:20:12

另外:

重复提供日期 ,可以利用一个格式化字符串之处要被格式化的参数索引

索引跟在%后面,而且必须以$结束("%1$d",...)

或者,使用<标志,表示先前被格式化的参数再次被使用("%s %<te",...)

_________________________________

解析字符串为时间

SimpleDateFormat类的parse()方法

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

public class DateDemo{
    public static void main(String args[]){
        SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd");
        String input = "1818-11-11";
        System.out.println(input);
        Date t;

        try{
            t = ft.parse(input);
            System.out.println(t);
        }catch(ParseException e){
            System.out.println(ft);
        }
    }
}

运行结果

1818-11-11
Wed Nov 11 00:00:00 UTC 1818

——————————————————————————

休眠:sleep()使当前线程进入停滞状态,,让出CPU的使用、目的是不让当前线程独自霸占该进程所获得的CPU资源,留一定时间给其他线程执行机会。

休眠3秒:

import java.util.*;

public class SleepDemo{
    public static void main(String args[]){
        try{
            System.out.println(new Date()+"
");
            Thread.sleep(1000*3);//休眠三秒
            System.out.println(new Date()+"
");
        }catch(Exception e){
            System.out.println("zzz");
        }
    }
}

运行结果

Thu Sep 17 02:44:50 UTC 2015

Thu Sep 17 02:44:53 UTC 2015

————————————————————————————————

测量时间间隔(单位:毫秒)

import java.utill.*;
public class Demo{
     public static void main(String args[]){
        try{
            long start = System.currentTimeMillis();
            System.out.println(new Date()+"
");
            Thread.sleep(5*60*10);
            System.out.println(new Date()+"
");
            long end = System.currentTimeMillis();
            long diff = end - start;
            System.out.println(diff);
        }catch(Exception e){
            System.out.println("……");
        }
    }
}

运行结果

Thu Sep 17 02:43:18 UTC 2015

Thu Sep 17 02:43:21 UTC 2015

3031

——————————————————————

Calendar类

抽象类,比Date类的功能要强大

Calendar a = Calendar.getInstance();//创建一个Calendar对象,默认当前系统日期
Calendar a = Calendar.getInstance();
a.set(2019,9-1,18);//创建一个指定日期(2019年9月18日)的Calendar对象,
描述
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 星期几
Calendar类对象信息的设置
set设置
1.Calendar c = Calendar.getInstance();
2.public final void set(int year,int month,int date)
3.c.set(2019,9,18)

add设置

1.Calendar c = Calendar.getInstance();
2.c.add(Calendar.DATE,10);//c对象的日期加上10,c表示为10天后的日期,其他只也会重新计算


GregorianCalendar类
Calendar类实现公历日历,GregorianCalendar类是Calendar类的一个具体实现。
原文地址:https://www.cnblogs.com/jaci/p/11456619.html