25.Java中的(日历类:java.util.Calendar)(日期类java.util.Date)

日历类:java.util.Calendar

1.Calendar:提供一些诸如 获取年,月,月中的日期 等等字段值

抽象类,不能实例化

静态功能,返回值是它自己本身

public static Calendar getInstance()

2.成员方法:

(1)public int get(int field):根据给定日历字段----获取日历字段的值(系统的日历)

(2)public abstract void add(int field,int amount):给指定的日历字段,添加或者减去时间偏移量 

     参数1:日历字段   参数2:偏移量

public class CalendarDemo {
    public static void main(String[] args) {

        //创建日历类对象
        //获取系统的年月日
       // Calendar c = new Calendar() ;
        //public static Calendar getInstance()
        Calendar calendar = Calendar.getInstance();
       // System.out.println(calendar);

        //获取年
        //public static final int YEAR
        int year = calendar.get(Calendar.YEAR) ;

        //获取月:
        //public static final int MONTH:0-11之间
        int month = calendar.get(Calendar.MONTH) ;

        //获取月中的日期
        //public static final int DATE
        //public static final int DAY OF MONTH : 每个月的第一天1
        int date = calendar.get(Calendar.DATE) ;

        System.out.println("当前日历为:"+year+"年"+(month+1)+"月"+date+"日");

        System.out.println("------------------------------------------------");
        //获取3年前的今天
        //给year设置偏移量
        // public abstract void add(int field,int amount)
       // calendar.add(Calendar.YEAR,-3);
        //获取
      //  year = calendar.get(Calendar.YEAR) ;
      //  System.out.println("当前日历为:"+year+"年"+(month+1)+"月"+date+"日");
        
    }
}

通过创建date对象,获取系统当前时间(java.util.Date)

1.java.util.Date:表示特定瞬间,精确到毫秒,它还允许格式化和解析日期字符串.

2.构造方法:

 public Date():当前系统时间格式
 public Date(long date):参数为 时间毫秒值---->Date对象  (1970年1月1日...)

public class DateDemo {
    public static void main(String[] args) {
        //创建日期类对象
        Date date  = new Date() ;
        System.out.println(date);
        System.out.println("------------------------");

        long time = 60*60 ;
        Date date2 = new Date(time) ;
        System.out.println(date2);
    }
}

3. java.util.Date-----String 格式化过程

DateForamt:抽象类----提供具体的日期/格式化的子类:SimpleDateFormat

format(Date对象)--->String

4.SimpleDateFormat:构造函数

(1)public SimpleDateFormat():使用默认模式

(2)public SimpleDateFormat(String pattern):使用指定的模式进行解析或者格式 (推荐)

 参数:  一种模式

           表示年 "yyyy" 

          表示月 "MM"

          表示月中的日期 "dd"

          一天中小时数 "HH" 

          分钟数 "mm"

          秒数 "ss"

 String:日期文本----->Date

(3)解析过程

public Date parse(String source)throws ParseException

如果解析的字符串的格式和 public SimpleDateFormat(String pattern)的参数模式不匹配的话,就会出现解析异常

public class DateDemo2 {
    public static void main(String[] args) throws ParseException {
        //Date----->String:格式化
        //1)创建Date对象:表示当前系统时间对象
        Date date  = new Date() ;
        System.out.println(date);
        //2)创建SimpleDateForamt对象:(中间桥梁)
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss") ;
        //3)调用format:格式化
        String strDate = sdf.format(date);
        System.out.println(strDate);



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

        //String---->Date(重点)
        //1)有一个日期文本格式
        //2)创建SimpleDateFormat对象指定一个模式
        //3)调用解析parse方法
        //注意:SimpleDateFormat解析模式必须和String日期文本格式匹配一致
        String source = "2008-5-12" ; //日期文本

        //SimpleDateFormat sdf2  = new SimpleDateFormat("yyyy年MM月dd日") ;
        SimpleDateFormat sdf2  = new SimpleDateFormat("yyyy-MM-dd") ;
        //public Date parse(String source)throws ParseException
        Date dateResult = sdf2.parse(source);
        System.out.println(dateResult);
    }
}

 5.Date和String类型如何转换

java.util.Date---->String: 格式化操作


//1)创建Date对象
Date date = new Date() ;
//2)创建SimpleDateFormat对象
SimpleDateFormat sdf  = new SimpleDateFormat("yyyy-MM-dd") ;
//3)格式化的操作
String textDate = sdf.foramt(date) ; //使用textDate:日期文本字符串

String:日期文本字符串----->java.util.Date :解析操作

//1)日期文本字符串
String source = "2021-7-29" ; //格式
//2)创建SimpleDateFormat对象
SimplDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd") ; //模式必须和String的格式一致,否则解析出错
//3)解析操作
Date date2 = sdf2.parse(source) ; //使用Date

6.Date--->String---->封装成工具类完成互相转换 

DateUtils.java

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


/*
 * 这是针对java.util.Date日期对象和String:日期文本字符串进行相互转换的工具类
 */
class DateUtils {

    //构造方法私有化
    private DateUtils(){}

    //提供两个静态功能
    //Date---->String

    /**
     * 这个方法是针对将日期对象转换成日期文本字符串
     * @param date     需要被格式化的日期对象
     * @param pattern   需要指定的模式
     * @return  返回的日期文本字符串  结果 yyyy-MM-dd
     */
    public static String date2String(Date date,String pattern){
        //分步走
        //创建SimpleDateFormat对象
       /* SimpleDateFormat sdf = new SimpleDateFormat(pattern) ;
        String result = sdf.format(date);
        return  result ;*/

        //一步走
        return new SimpleDateFormat(pattern).format(date) ;
    }


    //String--->Date: 解析过程: parse(String source) throws ParseException

    /**
     * 这个方法针对String日期文本字符串转换成日期对象
     * @param source   需要被解析的日期文本字符串
     * @param pattern   需要解析中使用的一种模式
     * @return  返回的就是日期对象Date
     */
    public static Date string2Date(String source,String pattern) throws ParseException {
        return new SimpleDateFormat(pattern).parse(source) ;
    }
}

test.java

import java.text.ParseException;
import java.util.Date;

/*
 * 测试下工具类
 */

public class test {
    public static void main(String[] args) throws ParseException {

        //直接使用工具类
        //Date---->String 格式化
        Date date = new Date() ;

        String str = DateUtils.date2String(date, "yyyy-MM-dd HH:mm:ss");
        System.out.println(str);
        System.out.println("---------------------");

        //String--->Date
        String source = "2022-6-9" ;
        Date date2 = DateUtils.string2Date(source, "yyyy-MM-dd");
        System.out.println(date2);

    }
}

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值