Date、SimpleDateFormat、Calendar的基本使用

本文介绍了Java中日期处理的基础知识,包括Date、SimpleDateFormat和Calendar的使用。首先,讲解了DateFormat的抽象特性以及SimpleDateFormat的构造和模式匹配,如"yyyy-MM-dd HH:mm:ss"。在使用SimpleDateFormat进行日期格式化和解析时需要注意异常处理。接着,提到了Calendar类的重要常量字段,并指出获取Calendar对象应使用getInstance()方法。

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

1、Dare和SimpleDateFormat

DateFormat是一个抽象类继承了Format类 对日期/时间进行格式化
格式化(也就是日期–>文本)、解析 (文本 -->日期)

成员方法:
String format(Date date) 按照指定的模式,把Date日期,格式化符合模式的字符串
Date parse(String source) 把符合模式的字符串,解析为Date日期
DateFormat类是一个抽象类,无法直接创建对象使用,可以使用DateFormat类的子类

 java.text.SimpleDateFormat extends DateFormat
构造方法:
用给定的模式和默认语言环境的日期格式符合构造 SimpleDateFormat
参数:String pattern:传递指定的模式
模式:区分大小写
y 年
M 月
d 日
D 本年已过了多少天
H 时
m 分
s 秒
E 星期几

写对应的模式,会把模式替换成对应的日期时间
“yyyy-MM-dd HH:mm:ss”
注意:
模式中的字母不能更改,连接模式的符号可以改变
“yyyy年MM月dd日 HH时mm分ss秒”

使用DateFormat类中的方法parse,把文本解析为日期
使用步骤:
1.创建SimpleFormat对象,构造方法中传递指定的格式
2.调用SimpleFormat对象中的方法parse,把符合构造方法中模式的字符串,解析为Date日期
注意:

public Date parse(String source) throws ParseException


parse方法声明了一个异常叫ParseException
如果字符串和构造方法不一样,那么程序就会抛出异常
调用一个抛出异常的方法,就必须的处理这个异常,要么throw,继续抛出这个异常,要么就try catch自己处理
 

 public static void main(String[] args) throws ParseException {
        //日期类型:出生日期  下单时间  付款时间  预约时间
        Date date=new Date();

        //SimpleDateFormat是DateFormat的字符转换
        SimpleDateFormat sim=new SimpleDateFormat("yyyy-MM-dd D E HH:mm:ss");//实列化日期格式化类,指定格式化的格式样式
        //日期  格式化成 字符串
        String format=sim.format(date);
        System.out.println(format);

        String time="2001-09-06 336 星期五 08:10:44";
        Date parse = sim.parse(time);
        System.out.println(parse);
    }

结果:

2、 Calendar

Calendar类的常量字段是非常重要的参数,在set()、add()、get()方法中都会用到。

Calendar类中常用的常量字段如下:

常量字段说明
Calendar.ERAERA表示纪元,只能为0或1。0表示BC(“before Christ”,即公元前);1表示AD(拉丁语“Anno Domini”,即公元)。
Calendar.YEAR表示年份
Calendar.MONTH表示月份,需要加1,因为0表示1月,1表示2月,以此类推
Calendar.HOUR小时(12小时制)
Calendar.MINUTE分钟
Calendar.SECOND
Calendar.MILLISECOND毫秒
Calendar.DAY_OF_YEAR一年中第几天
DAY_OF_MONTH一月中第几天
DAY_OF_WEEK一周中第几天,注意,周日是1,周一是2,...
Calendar.DATE  一月中第几天,同DAY_OF_MONTH的值是一样的
Calendar.DAY_OF_WEEK_IN_MONTH  当月内一周中的某天的序号
Calendar.WEEK_OF_MONTH 当前月中的星期数,即本月中第几个星期
Calendar.DAY_OF_WEEK_IN_MONTH 当前月中的第几个星期
Calendar.WEEK_OF_YEAR  一年中的星期数,即本年中第几个星期
Calendar.HOUR_OF_DAY 一天中第几个小时(24小时制)
Calendar.AM_PM    AM_PM是在中午之前还是在中午之后,在中午12点之前返回0,在中午12点(包括12点)之后返回1
Calendar.JANUARY 1月
Calendar.FEBRUARY2月
Calendar.MARCH3月
Calendar.APRIL4月
Calendar.MAY5月
Calendar.JUNE6月
Calendar.JULY7月
Calendar.AUGUST 8月
Calendar.SEPTEMBER9月
Calendar.OCTOBER10月
Calendar.NOVEMBER11月
Calendar.DECEMBER  12月

    
    
    
    
    
    
    
    
    
    
    
 
 
   
   
 


获取Calendar对象
不需要通过new来创建Calendar对象,而是通过Calendar类的getInstance()静态方法。代码如下:

// 获取日历对象

Calendar的getInstance方法返回一个Calendar对象
Calendar calendar = Calendar.getInstance();
指定年月日,日分秒,月份0--11表示1--12月
calendar.set(2022,11,25,18,32,10);
        //获取当前时间
        Date time = calendar.getTime();
        System.out.println(time);
结果:



Calendar 可以通过 get方法指定 字段名 来获取当前时间的一些信息  可以获取当前时间任何你想要获得的信息
int i = calendar.get(calendar.YEAR);//获取当前年份
        System.out.println("年份"+i);
        int i1 = calendar.get(calendar.MONTH);
        System.out.println("月份"+i1);
        int i2 = calendar.get(calendar.DAY_OF_YEAR);
        System.out.println("本年第"+i1);

结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值