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()+"\n");
            Thread.sleep(1000*3);//休眠三秒
            System.out.println(new Date()+"\n");
        }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()+"\n");
            Thread.sleep(5*60*10);
            System.out.println(new Date()+"\n");
            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

时间: 2024-11-05 12:31:06

Java日期和时间的相关文章

JAVA日期与时间

一:java.util.Data 包 Data对象表示一个精确到毫秒的瞬间. 下面我仅介绍它还剩下的为数不多的几个方法(这些方法的共同点是Date与毫秒值的转换): 构造方法: Date(): 在底层调用System.currentTimeMillis()作为日期参数 Date(long date): 根据指定的long整数(从1970-1-1 00:00:00以来经过的毫秒数)来生成Date对象. 方法 boolean after(Date when): 测试this日期是否在指定日期when

Java 日期、时间类

Java 原本提供了 Date 和 Calendar 用于处理日期.时间的类,包括创建日期.时间对象,获取系统当前日期.时间等操作.但 Date 不仅无法实现国际化,而且它对不同属性也使用了前后矛盾的偏移量,比如月份与小时都是从0开始的,月份中的天数则是从1开始的,年又是从1900开始的,而 java.util.Calendar 则显得过于复杂,从下面介绍中会看到传统 Java 对日期.时间处理的不足.Java8 吸取了 Joda-Time 库(一个被广泛使用的日期.时间库)的经验,提供了一套全

Java日期与时间的处理/Date,String,Calendar转换

public class Demo01 { //Java中Date类和Calendar简介 public static void main(String[] args) { long now=System.currentTimeMillis(); System.out.println("now= "+now); Date d1=new Date(now); System.out.println("d1= "+d1); Calendar c1=Calendar.get

Java 日期和时间转换Class SimpleDateFormat

Date and Time Pattern Result "yyyy.MM.dd G 'at' HH:mm:ss z" 2001.07.04 AD at 12:08:56 PDT "EEE, MMM d, ''yy" Wed, Jul 4, '01 "h:mm a" 12:08 PM "hh 'o''clock' a, zzzz" 12 o'clock PM, Pacific Daylight Time "K:mm

JAVA日期和时间类彻底解决(3)完vswa

消息摘要(Message Digest)数据库作为最关键的基础设施,渗透技术领域的方方面面.随着互联网应用的广泛普及,海量数据的存储及访问成为系统设计的一大痛点.随着各行各业对信息化管理的依赖日益加剧,企业对数据访问的连续性提出了更高的要求,面对纷至沓来的稳定性及高可用需求,数据库技术已然成为各领域信息化建设的关键一环.作为SDCC系列技术峰会的一部分,来自阿里巴巴.腾讯.微博.网易等多家企业的数据库专家及高校研究学者,将围绕Oracle.MySQL.PostgreSQL.Redis等热点数据库

Java 日期和时间之间转换

┌─────────────┐ │LocalDateTime│────┐ └─────────────┘ │ ┌─────────────┐ ├───>│ZonedDateTime│ ┌─────────────┐ │ └─────────────┘ │ ZoneId │────┘ ▲ └─────────────┘ ┌─────────┴─────────┐ │ │ ▼ ▼ ┌─────────────┐ ┌─────────────┐ │ Instant │<───>│ long │

Java语言学习(5)-Java中基础封装类(日期、时间类)

日期和时间封装类 1. Data类 Java日期和时间采用Data类.Data类在java.util包中. Data类构造函数: 1)       Data()   采用当前时间初始化对象: 2)       Data(long millisec)   采用1970年1月1日起时间毫秒数来初始化对象. Data类的方法: 1)       boolean after(Data d).boolean before(Data d) Data对象和参数指定日期较早晚,返回boolean值. 2)   

Java日期时间(Date/Time)

获取当前日期和时间 在Java中容易得到当前的日期和时间.可以使用一个简单的Date对象的toString()方法,如下所示打印当前日期和时间: import java.util.Date; public class DateDemo { public static void main(String args[]) { // Instantiate a Date object Date date = new Date(); // display time and date using toStr

Java 日期时间 Date类型,long类型,String类型表现形式的转换 (转)

Java 日期时间 Date类型,long类型,String类型表现形式的转换 1.java.util.Date类型转换成long类型java.util.Date dt = new Date();System.out.println(dt.toString());   //java.util.Date的含义long lSysTime1 = dt.getTime() / 1000;   //得到秒数,Date类型的getTime()返回毫秒数 2.由long类型转换成Date类型SimpleDat