100个Java工具类之53:日历类Calendar
Calendar类主要作用是提供日期转换。
它是一个抽象类,需调用特定方法getInstance来获取实例。
下文是对其通用用法的介绍。
一、获取当前时间
//获取当前时间 返回Date类型
Calendar calendar = Calendar.getInstance();
Date date = calendar.getTime();
输出:Thu Aug 24 14:57:31 CST 2023
//获取固定时间
Calendar calendar = Calendar.getInstance();
calendar.set(2023, 8, 1, 1, 0, 0);
Date date = calendar.getTime();
输出:Fri Sep 01 01:00:00 CST 2023
//年份
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
输出:2023
//月份
int month = calendar.get(Calendar.MONTH) + 1;
输出:8
//日期
int date = calendar.get(Calendar.DATE);
输出:24
//当年第几个星期
int weekOfYear = calendar.get(Calendar.WEEK_OF_YEAR);
输出:34
//当月第几个星期
int weekOfMonth = calendar.get(Calendar.WEEK_OF_MONTH);
输出:4
//当年第几天
int dayOfYear = calendar.get(Calendar.DAY_OF_YEAR);
输出:236
//当月第几天
int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
输出:24
//当周第几天
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - 1;
输出:4
//小时(12小时制)
int hour = calendar.get(Calendar.HOUR);
输出:3
//小时(24小时制)
int hourOfDay = calendar.get(Calendar.HOUR_OF_DAY);
输出:15
//分钟
int minute = calendar.get(Calendar.MINUTE);
输出:11
//秒
int second = calendar.get(Calendar.SECOND);
输出:25
//毫秒
int millis = calendar.get(Calendar.MILLISECOND);
输出:622
二、获取指定时间
//获取当前日期在指定年的日期
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, 2024);
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String date = format.format(calendar.getTime());
输出:2024-08-24
//获取5个月后的日期
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MONTH, 5);
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String date = format.format(calendar.getTime());
输出:2024-01-24
//roll与add区别是:roll处理日期时,当超出范围时,会从头开始算
//比如,当前日是24,加11是35,但35超出了8月日的限制31,所以从头开始算是35-31=4
Calendar calendar = Calendar.getInstance();
calendar.roll(Calendar.DAY_OF_MONTH, 11);
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String date = format.format(calendar.getTime());
输出:2023-08-04
累了困了,欣赏肌肤水墨画吧~