java SimpleDateFormat和Calendar日期类

一、SimpleDateFormat使用

使用Date直接输出日期时,是使用系统默认的格式输出,所以需要使用SimpleDateFormat来格式化日期。
那么SimpleDateFormat类怎么使用呢,我们需要先了解此类的格式化符号
y:代表年份
M:代表月份
d:代表月份中的那一天,也就是日
H:代表小时
m:代表分钟
s:代表秒
S:代表毫秒
所以使用时,需要使用这些字符来格式化日期
例如:你想显示日期格式为 2020-05-23 22:00:00 000
使用格式就应该为yyyy-MM-dd HH:mm:ss SSS

通过例子的形式来学习它如何使用
示例题目:你来这个世界多少天?
代码:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Demo26_SimpleDate {
    public static void main(String[] args) throws ParseException {
        /**
         需求:你来这个世界多少天
         * */
        String born = "2003年11月1日";
        String today = "2023年4月13日";
        //定义日期格式化对象
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月DD日");
        //将日期字符串转换成对象
        Date d1 = sdf.parse(born);
        Date d2 = sdf.parse(today);
        //求出毫秒值
        long time = d2.getTime() - d1.getTime();
        System.out.println(time / 1000 / 60/ 60/24);

    }
}

输出:
在这里插入图片描述

二、Calendar使用

Calendar是一个抽象类,我们无法直接实例化它,它有一个具体子类实体类java.util.GregorianCalendar,这个类实现的就是我们日常所用的公历历法,或者叫做阳历。我们可以直接使用new命令创建它的实例,或者使用Calendar类的getInstance方法来获得它实例.
Calendar c1 = Calendar.getInstance();
Calendar c2 = new GregorianCalendar();
// 参数含义依次为:年、月、日(、时、分、秒 ),
Calendar c3 = new GregorianCalendar(2008, 8, 8, 18, 10, 5);

示例代码:

import java.util.Calendar;
import java.util.Scanner;


public class Demo27_Calendar {
    public static void main(String[] args){
        test1();
        test2(2);
        test3();
//        game();
    }
    public static void test1(){
        Calendar c = Calendar.getInstance();//父类引用指向子类对象
        System.out.println(c.get(Calendar.YEAR));
        System.out.println(c.get(Calendar.MONTH)+1);//月份从零开始
        System.out.println(c.get(Calendar.DAY_OF_MONTH));
        System.out.println(c.get(Calendar.DAY_OF_WEEK));//周日是第一天,周六是最后一天
        System.out.println(c.get(Calendar.YEAR)+"年"+(c.get(Calendar.MONTH)+1)+"月"+c.get(Calendar.DAY_OF_MONTH)+"日"+test2(c.get(Calendar.DAY_OF_WEEK)));
    }
    public static String test2(int week){
        /**
         将星期存储在表中进行查询
         * */
        String[] arr = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
        return arr[week];

    }
    public static void test3(){
        Calendar c = Calendar.getInstance();//父类引用指向子类对象
        c.add(Calendar.YEAR,1);//让年份加1
        c.set(2025,1,2);//设置年月日
        System.out.println(c.get(Calendar.YEAR)+"年"+(c.get(Calendar.MONTH)+1)+"月"+c.get(Calendar.DAY_OF_MONTH)+"日"+test2(c.get(Calendar.DAY_OF_WEEK)));

    }
    public static void game(){
        /**
         需求:键盘输入年份判断是闰年还是平年
         * */
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入年份:");
        String line = sc.nextLine(); //录入数字字符串
        int year = Integer.parseInt(line); //转换为数字
        boolean b = getYear(year);
        System.out.println(b);
    }
    public static boolean getYear(int year){
        Calendar c = Calendar.getInstance();
        c.set(year,2,1);
        c.add(Calendar.DAY_OF_MONTH,-1);
        return c.get(Calendar.DAY_OF_MONTH) == 29;
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝朽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值