100个Java工具类之53:日历类Calendar

createh53个月前 (12-27)技术教程38

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

累了困了,欣赏肌肤水墨画吧~

相关文章

Java培训 | JAVA日期类 java中的日期类型

我们在程序开发过程中经常遇到对日期进行处理的需求,此时能熟练掌握Java API中提供的日期相关类就显得非常重要,可以顺利帮助我们解决遇到的问题。然而在Java8以前,日期和时间处理一直被程序员抱怨太...

java基础系列-Calendar类 java中calendar类的用法

一、概述Java官方推荐使用Calendar来替换Date的使用。Calendar与Date之间可以自由的进行转换,转换的纽带是time。使用Calendar的getTime()方法可以得到一个Dat...

Java时间类介绍:Date的使用 java中date类型的日期应该怎么写

在Java中用来表示日期的类有很多,最早使用的应该是Date类。Date类大概有两个,分别是:java.util.Date和java.sql.Date。前者对应我们日常生活中常用的日期类,而后者则表示...

侠说java8-LocalDateTime等时间使用手册(全),先mark后看

前言java8的时间日期api给我们提供了极大的便利。如何更好的熟悉使用时间api也是学习java8的一个很重要的知识点,下面我们一起来学习学习。本篇文章代码比较多,可以作为工具,需要使用时,再来查阅...

java获取当前时间的四种方法代码实例

这篇文章主要介绍了java获取当前时间的四种方法代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下第一种:Date类public class D...

java总结:5.sql往前往后推小时、天、月、年时间问题

DATE_ADD(date,INTERVAL expr unit)date:起始日期或者起始时间expr:指定的是一个间隔值,在起始时间中增加或者减少,注意:expr是一个字符串.对于负值间隔,可以以...