有关Date、SimpleDateFormat、calendar类

本文详细介绍了Java中处理日期和时间的三个核心类:Date、SimpleDateFormat和Calendar。包括它们的概念、构造方法、常用方法及具体应用案例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Date类

概念:

Date 类表示系统特定的时间,可以精确到毫秒。Date 对象表示时间的默认顺序是星期、月、日、小时、分、秒、年。

构造方法:

Date():此种形式表示分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒),使用该构造方法创建的对象可以获取本地的当前时间。

Date(long date):此种形式表示从 GMT 时间(格林尼治时间)1970 年 1 月 1 日 0 时 0 分 0 秒开始经过参数 date 指定的毫秒数。

案例:

package com.Date;

import java.util.Date;

public class DateTest01 {
    public static void main(String[] args) {
        //日期在开发中常用来存储  生日 下单时间  付款码时间 审批时间等
        //类Date 表示特定的瞬间 精确到秒
        Date  date1=new Date();//获取当前基于环境的时间
        System.out.println(date1);

        long time = date1.getTime();//1970 年 1 月 1 日 0 时 0 分 0 秒开始经过参数 date 指定的毫秒数。
        System.out.println(time);

        Date date2 = new Date(60000);
        System.out.println(date2);
    }
}

常用方法 :

                                                        Date类中的常用方法

        方法                                描述
boolean after(Date when)
判断此日期是否在指定日期之后
boolean before(Date when)
判断此日期是否在指定日期之前
boolean equals(Object obj)
比较两个日期的相等性
long getTime()返回自 1970 年 1 月 1 日 00:00:00 GMT 以来,此 Date 对象表示的毫秒数
String toString()
把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy。
其中 dow 是一周中的某一天(Sun、Mon、Tue、Wed、Thu、Fri 及 Sat)

SimpleDateFormat类

概念:

SimpleDateFormat类是一个抽象类,构造方法接受一个字符串的参数,表示它当前的日期格式。 它是允许你选择任何用户自定义日期和时间的格式,介绍了它的日期和时间的格式化编码。 实现List接口,它主要有两个常用的类分别是ArrayList类、LinkedList类。

实例化:

        // 空参构造器,采用默认格式
		SimpleDateFormat sdf = new SimpleDateFormat();
		// 带参指定格式的构造器
		SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

y:年
M:月
d:日
h:时
m:分
s:秒

 案例:

package com.Date;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.SimpleFormatter;

public class DateFormatTest {
    public static void main(String[] args) throws ParseException {
        //SimpleDateFormat 用来实现 日期 和 字符串 之间的相互转换
        SimpleDateFormat sdf = new SimpleDateFormat("yyy/MM/dd HH:mm:ss");//创建日期格式化类的对象,指定格式符号
        Date date1 = new Date();//获取当前系统时间

        //把 日期 转化成指定格式的 字符串
        String  format = sdf.format(date1);
        System.out.println(format);
        //把指定字符串 转化成日期
        String time = "2000/10/20 8:20:38";
        Date date2 = sdf.parse(time);
        System.out.println(date2);
    }
}

Calendar 类

概念:

Calendar 类是一个抽象类,它为特定瞬间与 YEAR、MONTH、DAY_OF—MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(如获得下星期的日期) 提供了一些方法。

创建 Calendar 对象不能使用 new 关键字,因为 Calendar 类是一个抽象类,但是它提供了一个 getInstance() 方法来获得 Calendar类的对象。getInstance() 方法返回一个 Calendar 对象,其日历字段已由当前日期和时间初始化。

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

案例:

package com.Date;

import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;

public class CalendarTest02 {
    public static void main(String[] args) {
        //Calendar 类是一个抽象类 可以通过Calender 的 getInstance 方法返回一个Calendar对象
        Calendar calendar = Calendar.getInstance();
        Date date1 = calendar.getTime();//获取当前系统时间
        System.out.println(date1);

        long timeInMills = calendar.getTimeInMillis();
        System.out.println("当前时间的毫秒值:"+timeInMills);

        TimeZone timeZone = calendar.getTimeZone();
        System.out.println("时区:"+timeZone);

        //get 方法可以根据 指定的日历字段 获取时间对应的值

        int year = calendar.get(Calendar.YEAR);
        System.out.println("年份:"+year);//哪年


        int month = calendar.get(Calendar.MONTH);
        System.out.println("月份:"+month+1);//0-11 表示1-12月  哪月

        int date = calendar.get(Calendar.DAY_OF_MONTH);//哪月的第几天
        System.out.println("日期:"+date);

        int dayofyear = calendar.get(Calendar.DAY_OF_YEAR);//哪年的第几天
        System.out.println("本年的第:"+dayofyear+"天");



        System.out.println("---------------");

        //可以获取  指定日期
        calendar.set(2000,9,28,15,59,61);
        Date date2 = calendar.getTime();
        System.out.println(date2);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值