API (Date)

本文详细介绍了Java中日期和时间的处理,包括Date类的基本使用,如获取系统时间、设置时间,以及转换为字符串。同时讲解了SimpleDateFormat类在日期格式化和解析中的应用,以及Calendar类的各种操作,如获取和设置年、月、日等信息。此外,还展示了Calendar类与Date类之间的转换方法。

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

package com.zking.test;

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

public class Test {
    public static void test1() {
        // 1.获取系统时间
        Date date = new Date();// util包
        // Tue Nov 30 09:00:24 CST 2021
        System.out.println(date);// 默认显示的风格:国外
        // 可以调用方法来显示常规时间
        // 2021-11-30 9:02:24
        System.out.println(date.toLocaleString());

        // 常用的方法
        // 获取当前的年份
        System.out.println(date.getYear() + 1900);
        // 获取当前的月份
        System.out.println(date.getMonth() + 1);
        // 获取当前的日
        System.out.println(date.getDate());
        // 获取当前的小时
        System.out.println(date.getHours());
        // 获取当前的分钟
        System.out.println(date.getMinutes());
        // 获取当前的秒
        System.out.println(date.getSeconds());
        // 获取当前的毫秒(距离1970年1月1日0:0:0之间的毫秒值)
        System.out.println(date.getTime());// 结果 long类型
        // 2021-11-30 9:09:16
        // 1638234556484

        // Date提供了一个可以传递毫秒值的构造函数
        Date d = new Date(1638234556484L);
        // 2021-11-30 9:09:16
        System.out.println(d.toLocaleString());

        Date d2 = new Date();
        d2.setYear(2022);
        System.out.println(d2.getYear());
    }

    public static void test2() {
        // -----------------------------------
        // SimpleDateFormat 日期格式转换类
        // 需求:通过Date对象得到一个日期,显示为:2021年11月11日 12:12:12
        // 1.实例化Date对象
        Date myDate = new Date();
        // 2.SimpleDateFormat创建
        // 日期的规则制定:
        // 年份: yyyy
        // 月份: MM
        // 日:dd
        // 小时:hh
        // 分钟: mm
        // 秒: ss
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        // 3.调用转换格式的方法
        String format = sdf.format(myDate);
        System.out.println(format);

        // Date---->String

        // String---->Date
        String str = "2021-11-11 12:20:20";
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            Date parse = sdf2.parse(str);// 该方法会出现异常所以使用try解决异常才能运行程序
            System.out.println(parse.toLocaleString());
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
    
    
    public static void main(String[] args) {

        // 今日新课:日期类(Date|SimpleDateFormat|Calendar)
        /**
         * Date: 1.该类位于java.util包中,在sql包也存在。 
         * 2.父类:Object类 
         * 3.作用:描述时间
         * 4.如何根据提供的Date类来获取时间或者设置时间
         *         通过该类提供的构造函数及方法来实现
         * 
         */

//        Calendar类:日历类,替代了Date类对象中常用的方法
        
        Calendar c = Calendar.getInstance();
        System.out.println(c);//java.util.GregorianCalendar[time=1638236478852,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2021,MONTH=10,WEEK_OF_YEAR=49,WEEK_OF_MONTH=5,DAY_OF_MONTH=30,DAY_OF_YEAR=334,DAY_OF_WEEK=3,DAY_OF_WEEK_IN_MONTH=5,AM_PM=0,HOUR=9,HOUR_OF_DAY=9,MINUTE=41,SECOND=18,MILLISECOND=852,ZONE_OFFSET=28800000,DST_OFFSET=0]
        
        //方法
        System.out.println(c.get(Calendar.YEAR));//年
        System.out.println(c.get(Calendar.MONTH)+1);//月
        System.out.println(c.get(Calendar.DATE));//日
        System.out.println(c.get(Calendar.HOUR));//小时
        System.out.println(c.get(Calendar.MINUTE));//分钟
        System.out.println(c.get(Calendar.SECOND));//秒
        System.out.println(c.getTimeInMillis());//毫秒值
        
        //set
        c.set(2000, 10, 20);
        System.out.println(c.get(Calendar.YEAR));
        System.out.println(c.get(Calendar.MONTH));
        
        
        //add:根据第一个参数的类型  增加指定的年|月|日|....
        c.add(Calendar.YEAR, -2);
        System.out.println(c.get(Calendar.YEAR));
        
        
        /**
         * 问题:
         *         String类型的日期----》Calendar类型的日期
         * 
         *         Calendar类型的日期----》String类型的日期
         */
        
        // 1.Calendar类型的日期----》String类型的日期
        Calendar calendar = Calendar.getInstance();
        //需求:先将日历类---Date
//        Date d = calendar.getTime();
        //2
        long timeInMillis = calendar.getTimeInMillis();
        Date d = new Date(timeInMillis);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String str = sdf.format(d);
        System.out.println(str);
        
        
        
        //2.String类型的日期----》Calendar类型的日期
        String da = "2021-10-10";
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
        try {
            Date d2 = sdf2.parse(da);
            //实例化Calendar
            Calendar c2 = Calendar.getInstance();
            c2.setTime(d2);
            System.out.println(c2.get(Calendar.YEAR)+"年"+(c2.get(Calendar.MONTH)+1)+"月"+c2.get(Calendar.DATE)+"日");
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
        
        
        

    }

}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值