Java——(Date类、SimpleDateFormat类、Calendar类)

目录

1、Date类的概述和方法使用

2、SimpleDateFormat类实现日期和字符串的相互转换

3、你来到这个世界多少天案例

4、Calendar类的概述和获取日期的方法

5、补充 BigInteger概述 可以让超过long范围内的数据进行运算


1、Date类的概述和方法使用

 Date类的概述
    类 Date 表示特定的瞬间,精确到毫秒

 构造方法
    public Date()
    public Date(long date)  //把一个long类型的毫秒值转换成一个日期对象

 成员方法
        public long getTime():
  获取一个日期对象对象毫秒值
        public void setTime(long time):
  给一个日期对象设置上指定的毫秒值 例:date.setTime(1000 * 60 * 60) ;

package org.westos.demo;

import java.util.Date;

public class MyTest {
    public static void main(String[] args) {
        Date date = new Date();
        //getTime() 获取从计算机历元年,到现在所间隔的毫秒值
        long time = date.getTime();
        long timeMillis = System.currentTimeMillis();
        System.out.println(time);
        System.out.println(timeMillis);

        System.out.println("=======================");
        Date date1 = new Date();
        // //在计算机历元年 上加上对应的毫秒值
        date1.setTime(1000*60*60);

        System.out.println(date1);
    }
}

Date ---- long 的转换    
调用getTime方法

long --- Date 的转换
可以使用构造方法
setTime(long time)

package org.westos.demo;

import java.util.Date;

public class MyTest3 {
    public static void main(String[] args) {
      /*  Date---- long 的转换
        调用getTime方法

        long ---Date 的转换
                可以使用构造方法
        setTime( long time)*/

        Date date = new Date();
        long time = date.getTime();
        System.out.println(time);

        long timeNum=2252525252525255L;

        Date date1 = new Date(timeNum);
        System.out.println(date1);
    }
}

2、SimpleDateFormat类实现日期和字符串的相互转换

SimpleDateFormat:
可以把一个日期对象格式化成一个文本(字符串) , 也可以把一个日期字符串解析成一个日期对象

构造方法:
public SimpleDateFormat():
使用默认的模式来创建一个SimpleDateFormat对象
public SimpleDateFormat(String pattern):
使用指定的模式(规则比如yyyy:MM:dd HH:mm:ss)来创建一个SimpleDateFormat对象

规则的定义:

 

成员方法:
public String format(Date date):
把一个日期对象格式化成一个字符串

package org.westos.demo;

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

public class MyTest {
    public static void main(String[] args) {
        Date date = new Date();
        //日期格式化类
        SimpleDateFormat sd = new SimpleDateFormat();
        String format = sd.format(date);//把日期转换成日期字符串
        System.out.println(format);

        //指定格式来转换
        SimpleDateFormat sd2 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss E");
        String format1 = sd2.format(date);//把日期Date对象 转换成日期字符串
        System.out.println(format1);
    }
}

public Date parse(String dateStr):
把一个日期字符串解析成一个日期对象 注意要以指定格式解析

package org.westos.demo;

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

public class MyTest1 {
    public static void main(String[] args) throws ParseException {
        String datestr="2021-12-22 13:30:00";
        // //把日期字符串,转换成日期对象,注意格式要对应,不然就会解析失败
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date parse = simpleDateFormat.parse(datestr);
        System.out.println(parse);
    }
}

3、你来到这个世界多少天案例

练习:
需求:算一下你来到这个世界多少天?

  • a: 键盘录入一个生日(日期字符串)

  • b: 把这个日期字符串对象解析成一个日期对象

  • c: 获取b中的日期对象对应的毫秒值

  • d: 获取当前系统时间对应的毫秒值

  • e: 使用d中的毫秒值 - c中的毫秒值

  • f: 把e中的差值换算成对应的天 差值/1000/60/60/24

  • g: 输出

package org.westos.demo2;

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

public class MyTest {
    public static void main(String[] args) throws ParseException {
       /* A:
        案例演示:
        需求:算一下你来到这个世界多少天 ?*/
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入你的生日例如: 1990-10-10");
        String birthday= scanner.nextLine();
        //算出他出生那天的毫秒值
        Date date = new SimpleDateFormat("yyyy-MM-dd").parse(birthday);
        long start = date.getTime();
        //再算出现在的毫秒值
        long now = System.currentTimeMillis();

        System.out.println("你来到这个世界"+((now-start)/1000/60/60/24)+"天");
    }
}

 

4、Calendar类的概述和获取日期的方法

Calendar类的概述  
    Calendar 类是一个抽象类,不能直接new对象,可以通过他的一个静态成员方法getInstance()来获取他的对象
    它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 
    等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法

成员方法
    public static Calendar getInstance()    
使用默认时区和语言环境获得一个日历对象
    public int get(int field)        
获得给定日历字段对应的值 field通过Calendar提供的字段来拿
    public final void set(int year,int month,int date)    
设置日历时间 年月日

package org.westos.demo2;

import java.util.Calendar;

public class MyTest2 {
    public static void main(String[] args) {
        // static Calendar getInstance ()
        // 使用默认时区和语言环境获得一个日历
       //月份由从 0 至 11 的整数表示;0 是一月、1 是二月等等;因此 11 是十二月。
        Calendar instance = Calendar.getInstance();
        System.out.println(instance);

        int i = instance.get(Calendar.YEAR);
        int i1 = instance.get(Calendar.MONTH);
        int i2 = instance.get(Calendar.DAY_OF_MONTH);
        int i3 = instance.get(Calendar.HOUR_OF_DAY); //24小数制
        int i4 = instance.get(Calendar.HOUR); //12小数
        int i5 = instance.get(Calendar.MINUTE);
        int i6 = instance.get(Calendar.SECOND);
        System.out.println(i);
        System.out.println(i1);
        System.out.println(i2);
        System.out.println(i3);
        System.out.println(i4);
        System.out.println(i5);
        System.out.println(i6);


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

        Calendar instance1 = Calendar.getInstance();
        instance1.set(Calendar.YEAR,2022); //单独设置某个日期字段

        int i7 = instance1.get(Calendar.YEAR);
        System.out.println(i7);
        //设置年月日,时分秒

        instance1.set(2020,10,10,16,30,30);


    }
}

    public void add(int field,int amount)        
根据日历的规则,为给定的日历字段添加或减去指定的时间量

package org.westos.demo2;

import java.util.Calendar;

public class MyTest3 {
    public static void main(String[] args) {
        //减去时间量和添加时间量
        Calendar instance = Calendar.getInstance();
        instance.add(Calendar.YEAR,1);
        int i = instance.get(Calendar.YEAR);
        System.out.println(i);
        //给出 负数值,就是减去
        instance.add(Calendar.HOUR_OF_DAY,-1);

        int i1 = instance.get(Calendar.HOUR_OF_DAY);
        System.out.println(i1);
    }
}

5、补充 BigInteger概述
可以让超过long范围内的数据进行运算

构造方法
public BigInteger(String val)
成员方法
public BigInteger add(BigInteger val)
public BigInteger subtract(BigInteger val)
public BigInteger multiply(BigInteger val)
public BigInteger divide(BigInteger val)
public BigInteger[] divideAndRemainder(BigInteger val)

package org.westos.demo2;

import java.math.BigInteger;

public class MyTest6 {
    public static void main(String[] args) {
        //BigInteger
        long a = Long.MAX_VALUE;
        long b = Long.MAX_VALUE;
        
        long num=a+b;
        System.out.println(num);

        BigInteger bigInteger1 = new BigInteger(a + "");

        BigInteger bigInteger2 = new BigInteger(b+ "");

        BigInteger add = bigInteger1.add(bigInteger2);
        System.out.println(add.toString());

    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值