java 时间类Date和Calendar

Java的时间类经常用到,主要是两个类Date和Calendar,分别做下介绍。

一、Date

1、在 package java.util

类定义如下:

public class Date

    implements java.io.Serializable, Cloneable, Comparable<Date>{}

类 Date 表示特定的瞬间,精确到毫秒。

在 JDK 1.1 之前,类 Date 有两个其他的函数。它允许把日期解释为年、月、日、小时、分钟和秒值。它也允许格式化和解析日期字符串。不过,这些函数的 API 不易于实现国际化。从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,使用 DateFormat 类来格式化和解析日期字符串。Date 中的相应方法已废弃

2、获取方式,new。

Date  date = new Date();

获取一个当前的时间。

主要结合格式化类一起使用,时间格式化比较普遍使用:

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        Date  date = new Date();
        System.out.println("date:" + date);
        System.out.println("format Date:" + format.format(date));

output:

date:Wed Mar 06 12:26:42 CST 2019

format Date:2019-03-06 12:26:42

3、其他使用,比较时间大小。有三个函数:

after(),before(),compareTo
Calendar c = Calendar.getInstance();
        c.add(Calendar.DAY_OF_MONTH, -1);
        Date date1 = c.getTime();
        Date  date2 = new Date();
        System.out.println(date1.after(date2));//测试此日期是否在指定日期之后。date1比date2早,所以返回false
        System.out.println(date1.before(date2));//测试此日期是否在指定日期之前。date1比date2早,所以返回true
        //比较两个日期的顺序。
        //如果参数 Date 等于此 Date,则返回值 0;如果此 Date 在 Date 参数之前,则返回小于 0 的值;如果此 Date 在 Date 参数之后,则返回大于 0 的值。
        System.out.println(date1.compareTo(date2));//测试此日期是否在指定日期之前。date1比date2早,所以返回-1

二、Calendar

推荐使用

1、在package java.util;

定义:

public abstract class Calendar implements Serializable, Cloneable, Comparable<Calendar> {」

是个抽象类,所以无法通过new关键字创建对象。

通过调用方法:

public static Calendar getInstance()

来获取当前时间。

定义了很多整型常量值,月份,星期等。比如:SUNDAY--SATURDAY,是1--7;具体查看api文档:http://tool.oschina.net/apidocs/apidoc?api=jdk-zh

使用示例:

// 输出当前时刻
        Calendar c = Calendar.getInstance();
        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH) + 1;
        int day = c.get(Calendar.DAY_OF_MONTH);
        int hour = c.get(Calendar.HOUR_OF_DAY);//Calendar.HOUR是12分制
        int minute = c.get(Calendar.MINUTE);
        int seconds = c.get(Calendar.SECOND);
        System.out.println("now:" + year + "年" + month + "月" + day + "号,"
                + hour + "时" + minute + "分" + seconds + "秒"
                );
        // 输出前一天的当前时刻
        c.add(Calendar.DAY_OF_MONTH, -1);
//        c.set(Calendar.DAY_OF_MONTH,c.get(Calendar.DAY_OF_MONTH) + -1);//sencond method to get last day
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        System.out.println("format Calendar:" + format.format(c.getTime()));

output:

now:2019年3月6号,12时59分34秒

format Calendar:2019-03-05 12:59:34

原文地址:https://www.cnblogs.com/luoa/p/10482610.html

时间: 2024-10-08 10:03:50

java 时间类Date和Calendar的相关文章

Java时间类Date与Calendar的区别与使用 &#350964;

原文: http://blog.gqylpy.com/gqy/464 置顶:来自一名75后老程序员的武林秘籍--必读(博主推荐) 来,先呈上武林秘籍链接:http://blog.gqylpy.com/gqy/401/ 你好,我是一名极客!一个 75 后的老工程师! 我将花两分钟,表述清楚我让你读这段文字的目的! 如果你看过武侠小说,你可以把这个经历理解为,你失足落入一个山洞遇到了一位垂暮的老者!而这位老者打算传你一套武功秘籍! 没错,我就是这个老者! 干研发 20 多年了!我也年轻过,奋斗过!我

java时间类的使用

日期的使用: 1.创建日期 2.日期格式化显示 3.日期的转换 4.两个日期的大小比较.日期的加减   一些知识:       全球24个时区的瓜分       格林威治标准时间GMT 世界协调时间(世界标准时间)UTC       夏日节约时间DST       CST时间 CST却同时可以代表如下 4 个不同的时区: Central Standard Time (USA) UT-6:00 Central Standard Time (Australia) UT+9:30 China Stan

java时间类简单总结

java时间类(Data类) 1.Data类(没有考虑到国际化,好多方法已过时java.util.Data包中) 父类(是类不是接口含有直接子类3个):  日期格式为:年月日时分秒(不包含毫秒部分) 两种方式创建:带参构造方法(long型参数:Data(long log)),不带参 常用方法:after(),before(),compareTo()等方法. 直接子类:java.sql.Data(用于提供数据库日期的表示)   日期格式为:年月日(只有日期,没有时间) 该类构造函数必须是带参数的(

Java常用类库之时间操作类——Date、Calendar、DateFormat、SimpleDateFormat及实例操作

学习目标 掌握Date类的使用 可以使用Calendar类取得一个完整的日期 掌握日期格式化的操作 可以使用SimpleDateFormat进行日期的格式化转换操作 编写取得日期的操作类 进一步掌握Calendar类的使用 进一步掌握SimpleDateFormat类的使用 Date类是一个较为常用的类,但是其操作的日期格式会有一些不符合个人要求,而如果想要进一步取得一些自己需要的时间,则可以使用Calendar类. Date类 在java.util包中定义了Date类,Date类本身使用非常简

关于java日期类Date,DateFormat,SimpleDateFormat,Calendar总结

                      Date,DateFormat,SimpleDateFormat,Calendar                                      1.Date类: 在java.util包下,类 Date 表示特定的瞬间,精确到毫秒.从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,使用 DateFormat 类来格式化和分析日期字符串.Date 中的相应方法已废弃.所以Date主要用来生成时间(是网上见解,

Java 时间类

一.Date类 Date:表示特定的瞬间,精确到毫秒构造方法:     (1)public Date():根据当前的默认毫秒值创建日期对象     (2)public Date(long date):根据给定的毫秒值创建日期对象成员方法:     (1)public long getTime():获取时间,返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数.     (2)public long setTime(long time):设置时间,表示

Java中的Date和Calendar的常用用法

在java中用到的最多的时间类莫过于 java.util.Date了,由于Date类中将getYear(),getMonth()等获取年.月.日的方法都废弃了,所以要借助于Calendar来获取年.月.日.周等比较常用的日期格式 注意:以下代码均已在jdk1.6中测试通过,其他版本可能使用不同,请注意! Date与String的相互转换 /**  * Date与String的互转用法,这里需要用到SimpleDateFormat */Date currentTime = new Date();

java时间类API

一.jdk8之前的日期时间的API测试: 1.System了中currentTimeMIllis()://返回从1970年到现在的总毫秒数 2.java.util.Date和子类java.sql.Date   //返回当前日期,后者是兼容数据库类型的日期 比如:给一个Date类的日期,可以先使用getTime()转化为毫秒数,然后作为参数传递给创建java.sql.Date的实例化作为参数,那么输出该实例化对象就是数据库兼容类型的日期. 3.simpleDateFormat  //对日期Date

Java - 时间戳、Date、Calendar、SimpleDateFormat

Java package com.ikoo.demo; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class DateUtil { public static void main(String[] args) { /** * 时间戳 * 1.System.currentTimeMillis() * 2.new Date().getTime() * 3.Ca