0


大数据基础之java常用API三(SimpleDateFormat类和Calendar类的使用)

大数据基础之常用API三


在这里插入图片描述

1. SimpleDateFormat

1.1 概念

SimpleDateFormat 是一个与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化和解析。
SimpleDateFormat类, 叫日期格式化类, 专门用来格式化和解析日期的.

  • 格式化(日期 -> 文本), 即: Date -> String
  • 解析(文本 -> 日期), 即: String -> Date

1.2 构造方法

public SimpleDateFormat()
解释: 根据空参构造, 创建SimpleDateFormat类的对象.
public SimpleDateFormat(String pattern)
解释: 根据给定的模板, 创建其对应的SimpleDateFormat类的对象.

1.3 成员方法

public final String format(Date date)
解释: 用来格式化日期的.
public Date parse(String source)
解释: 用来解析字符串形式的日期的.

importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.Date;/*
SimpleDateFormat 类: 简单的格式化时间的一个类

构造方法:
public SimpleDateFormat();
public SimpleDateFormat(String parrent);

成员方法:

format  格式化日期输出字符串
parse   输入字符串转换为日期

 */publicclassDemo02{// 此处为抛出异常,之后会讲publicstaticvoidmain(String[] args)throwsParseException{// 构造对象SimpleDateFormat sdf =newSimpleDateFormat();System.out.println(sdf);// 使用传入的规则创建一个sdf对象SimpleDateFormat sdf1 =newSimpleDateFormat("yyyy-MM-dd'\t'HH:mm:ss");//将日期格式化为字符串Date d1 =newDate();//空参构造格式化String format = sdf.format(d1);// 带时间格式的构造格式化String format2 = sdf1.format(d1);System.out.println(format);// "22-1-25 上午11:38"//        dateString ds1 = "Tue Jan 25 11:15:38 CST 2022";System.out.println(format2);// "2022-01-25 11:39:14"//将字符串格式化为日期// 将字符串转换为Date类型时,要注意sdf对象的时间格式,要和字符串的格式相匹配,否则就会转换失败而报错// 此处系统判断我们可能出现异常,所以强制我们处理异常,或者抛出异常//        Date parse = sdf1.parse("22-1-25 上午11:38");Date parse = sdf1.parse("2022-01-25    11:39:14");System.out.println(parse);}}

1.4 练习

• 定义工具类DateUtils, 该类有两个方法: date2String(), string2Date(), 分别用来格式化, 解析日期.
• 在测试类中, 测试上述的两个方法.
• 注意: 解析日期字符串时, SImpleDateFormat对象的模板要和被解析的字符串格式保持一致.

publicclassDemo03{publicstaticvoidmain(String[] args)throwsParseException{// Date>> StringDate d1 =newDate();System.out.println(DateUtils.Date2String(d1,"yyyy年MM月dd日  HH时:mm分"));// String>> Date String dateStr ="2022年01月25日  11时:56分";Date d2 =DateUtils.String2Date(dateStr,"yyyy年MM月dd日  HH时:mm分");System.out.println(d2);}}
importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.Date;publicclassDateUtils{//工具类的思想://1. 构造方法私有privateDateUtils(){}//2. 所有方法静态publicstaticStringDate2String(Date date,String parrent){// 创建一个sdf对象SimpleDateFormat sdf =newSimpleDateFormat(parrent);//格式化String dateStr = sdf.format(date);//返回结果return dateStr;}publicstaticDateString2Date(String dateStr,String parrent)throwsParseException{// 创建一个sdf对象SimpleDateFormat sdf =newSimpleDateFormat(parrent);// 解析Date date = sdf.parse(dateStr);// 返回return date;}}

2. Calendar类

2.1 概述

Calendar类叫: 日历类, 是方便我们操作日期的. 它里边的功能大多数是用来替代java.util.Date类的功能的.

2.2 构造方法

Calendar类可以理解为是工具类, 因为它是一个抽象类, 所以外界无法通过new的方式创建本类对象.
问题: 如何创建Calendar类的对象呢?
答案: 通过Calendar#getInstance()方法实现.

2.3 成员变量

public static final int YEAR
解释: 表示年份.
public static final int MONT
解释: 表示月份.
public static final int DATE
解释: 表示年中的某一天.
public static final int DAYOFMONTH
解释: 表示月中的某一天.
public static final int DAYOFWEEK
解释: 表示星期中的某一天.

2.4 成员方法

public static Calendar getInstance();
解释: 创建Calendar类型的子类对象.
public int get(int field)
解释: 根据日历字段, 获取其对应的值.
public void set(int year, int month, int day)
解释: 设置时间为指定的年, 月, 日.
public void add(int field, int count)
解释: 修改指定的时间为指定的偏移量, 例如: 往前推2天, 推3个月, 往后推2年.

importjava.util.Calendar;/*
Calendar 帮助我们去记录和使用时间的一个类,目前已经基本替换Date, JDK1.1
那为什么不删除Date呢??? 因为jdk要进行向下兼容 例如1.8版本要兼容1,8之前的所有版本,所以不能删除
*/publicclassDemo01{publicstaticvoidmain(String[] args){// Calendar 是一个抽象类,不能进行实例化,但是我们想使用他// 在类中给了一个getinstance这个方法,内部返回了一个Calendar的子类对象.// 如果想要使用Calendar构造方法创建一个类,就需要实现其所有抽象方法.Calendar calendar =Calendar.getInstance();System.out.println(calendar);// 获取当前的一些时间(静态变量)// Calendar.DATE 这个是给 Calendar添加或者删减数据用//        System.out.println(Calendar.DATE); // 5//        System.out.println(Calendar.MONTH); // 2//        System.out.println(Calendar.YEAR); // 1//        System.out.println(Calendar.WEEK_OF_MONTH); // 4// 计算机中month中0代表的是1月, 1代表2月  以此类推// 星期,月份在Calendar类中都有对应的常量代表
        calendar.set(2022,0,25);System.out.println(calendar.get(Calendar.DAY_OF_YEAR));//使用add 给DATE 添加4天
        calendar.add(Calendar.DATE,4);
        calendar.add(Calendar.MONTH,-4);// 获取添加4天后是这一年的第几天System.out.println(calendar.get(Calendar.DAY_OF_YEAR));// 如果再Calendar使用过程中,进行了一系列操作将日期,月份或者年份进行减少或增加进入了下一个月年  都会进行记录// 所以我们再开发中你可以使用Calendar进行计算.System.out.println(calendar.get(Calendar.YEAR));// 2021年}}

2.5 练习

publicstaticvoidmain(String[] args){//1. 创建一个Scanner对象Scanner sc =newScanner(System.in);//2.提示并获取用户输入的年份System.out.println("请输入您要查询的年份:");int year = sc.nextInt();//3.创建一个calendar对象,将年份传入Calendar c1 =Calendar.getInstance();//4.将3月1日传入Calendar对象  ,此处是3月1日,所以MONTH应该传2
    c1.set(Calendar.YEAR, year);
    c1.set(Calendar.MONTH,2);
    c1.set(Calendar.DATE,1);//5.从当前calendar对象中减去一天,
    c1.add(Calendar.DATE,-1);//6.获取当月的日期,就是当年2月份的天数System.out.println("二月份的天数是:"+ c1.get(Calendar.DATE));}

本文转载自: https://blog.csdn.net/Chad_it/article/details/127496862
版权归原作者 淼淼_喵 所有, 如有侵权,请联系我们删除。

“大数据基础之java常用API三(SimpleDateFormat类和Calendar类的使用)”的评论:

还没有评论