> 文章列表 > java SimpleDateFormat和Calendar日期类

java SimpleDateFormat和Calendar日期类

java SimpleDateFormat和Calendar日期类

目录

  • 一、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);}
}

输出:
java SimpleDateFormat和Calendar日期类

二、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);//让年份加1c.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;}
}