java.util.Calendar 类是一个抽象类 ,Calendar 类进行时间和日期的处理

首先获取类实例

Calendar calendar = Calendar.getInstance();//获取当前系统时间

1.设置时间

calendar.set(2013, 5, 4, 13, 44, 51);//年月日时分秒(月份0代表1月)
calendar.set(Calendar.YEAR, 2014);//设置为2014年
calendar.set(Calendar.MONTH, 7);//设置为8月(0代表1月,1代表2月,2代表3月...12代表1月)
calendar.set(Calendar.DATE, 11);//设置为11日
calendar.set(Calendar.HOUR_OF_DAY, 15);//设置为15时
calendar.set(Calendar.MINUTE, 33);//设置为33分
calendar.set(Calendar.SECOND, 32);//设置为32秒

2.获取年月日时分秒

calendar.get(Calendar.YEAR);//年
calendar.get(Calendar.MONTH) + 1;//前一个月+1(必须要+1,不然表示获取前一个月份)
calendar.get(Calendar.DATE);//日
calendar.get(Calendar.HOUR_OF_DAY);//时
calendar.get(Calendar.MINUTE);//分
calendar.get(Calendar.SECOND);//秒
calendar.get(Calendar.DAY_OF_WEEK);//星期(Locale.ENGLISH情况下,周日是1,剩下自己推算)

3.通过运算获取时间

calendar.add(Calendar.YEAR, 1);//年
calendar.add(Calendar.MONTH, 1);//月
calendar.add(Calendar.DATE, 1);//后一天的时间,-1代表前一天的时间
calendar.add(Calendar.HOUR_OF_DAY, -1);//时
calendar.add(Calendar.MINUTE, 1);//分
calendar.add(Calendar.SECOND, 1);//秒
calendar.add(Calendar.DATE, 7);//周

4.和Date类转换

Date转Calendar

//1.首先获取类实例
Calendar calendar = Calendar.getInstance();
Date date = new Date();//当前时间
calendar.setTime(date);//设置为当期时间

Calendar转Date

Calendar calendar = Calendar.getInstance();
Date date = calendar.getTime();

5.格式化时间

Date转String

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//自定义格式:"yyyy年MM月dd日 HH:mm:ss" ,"yyyy-MM-dd HH:mm:ss" 等...
Date time = calendar.getTime();
String dateStr = simpleDateFormat.format(time);

String转Date

String dateStr = "2020-07-21 18:10:12";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date parse = simpleDateFormat.parse(dateStr);

6.新功能LocalDate:当前日期格式化

/**
* @description: LocalDate日期处理
* @author: HaoWu
* @create: 2020年09月04日
*/
public class TestPublisher {
public static void main(String[] args) {
/***************** LocalDate ********************/
LocalDate now = LocalDate.now();
//当前日期 2020-09-05
String nowStr = now.toString();
//前一天 2020-09-04
String yesterday1 = now.plusDays(-1).toString();
String yesterday2 = now.minusDays(1).toString(); /***************** LocalTime ********************/
LocalTime nowTime = LocalTime.now();
//hh:MM:ss 时分秒
String nowStr1 = nowTime.toString();
//时
int hour = nowTime.getHour();
//分
int minute = nowTime.getMinute();
//秒
int second = nowTime.getSecond();
/***************** LocalTime ********************/
//这个不标准:2020-09-05T10:20:37.188
LocalDateTime.now().toString();
}
}

7.示例

求打印出前七天的日期,格式为:“2020年07月21日 11:22:22”

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date; /**
* @description: TODO Calendar类基本使用
* @author: HaoWu
* @create: 2020/7/21 17:37
*/
public class CalendarDemo {
public static void main(String[] args) throws ParseException {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
for (int i = 1; i < 8; i++) {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DATE,-i);
Date time = calendar.getTime();
System.out.println(simpleDateFormat.format(time));
}
}
}

打印结果

2020年07月20日 18:21:44
2020年07月19日 18:21:44
2020年07月18日 18:21:44
2020年07月17日 18:21:44
2020年07月16日 18:21:44
2020年07月15日 18:21:44
2020年07月14日 18:21:44 Process finished with exit code 0

Java【常用的日期操作】的更多相关文章

  1. Java中的日期操作

    在日志中常用的记录当前时间及程序运行时长的方法: public void inject(Path urlDir) throws Exception { SimpleDateFormat sdf = n ...

  2. Java中的日期操作 分类: B1_JAVA 2015-02-16 17:55 6014人阅读 评论(0) 收藏

    在日志中常用的记录当前时间及程序运行时长的方法: public void inject(Path urlDir) throws Exception { SimpleDateFormat sdf = n ...

  3. Java 常用IO流操作详解

    1.基本概念 IO:Java对数据的操作是通过流的方式,IO流用来处理设备之间的数据传输,上传文件和下载文件,Java用于操作流的对象都在IO包中. 2.IO流的分类 图示:(主要IO流) 3.字节流 ...

  4. Java常用api和操作必背

    1.数组排序 Java的Arrays类(java.util中)包含用来操作数组(比如排序和搜索)的各种方法. Arrays.sort(各种类型数组) 2.数组转字符串 1)打印数组时可用Arrays. ...

  5. NSDate常用的日期操作

    // 当前时间创建NSDate NSDate *myDate = [NSDate date]; NSLog(@"myDate = %@",myDate); //从现在开始的24小时 ...

  6. Java经常使用日期操作具体解释

    Date类型大多数时间分量计算方法已经被Calendar代替 Date经常用法setTime getTime() new Date();默认获取当前的时间 SimpleDateFormat用来格式化和 ...

  7. java中的日期操作Calendar和Date

    1. Calendar转Date Calendar calendar = Calendar.getInstance(); Date date = calendar.getTime(); 2. Date ...

  8. Java常用日期操作

    对java中常用的日期操作进行整理. 1.日期格式化 /* * 日期格式化类(必须掌握) * API: * G Era 标志符 Text AD y 年 Year 1996; 96 M 年中的月份 Mo ...

  9. java常用日期类总结

    java 常用的日期类有三个Date.SimpleDateFormat.Calendar

随机推荐

  1. cf17B Hierarchy(额,,,水)

    题意: Nick's company employed n people. Now Nick needs to build a tree hierarchy of «supervisor-surbod ...

  2. 30分钟通过Kong实现.NET网关

    什么是Kong Openrestry是一个基于Nginx与Lua的高性能平台,内部有大量的Lua库.其中ngx_lua_moudule使开发人员能使用Lua脚本调用Nginx模块.Kong是一个Ope ...

  3. CANN5.0黑科技解密 | 别眨眼!缩小隧道,让你的AI模型“身轻如燕”!

    摘要:CANN作为释放昇腾硬件算力的关键平台,通过深耕先进的模型压缩技术,聚力打造AMCT模型压缩工具,在保证模型精度前提下,不遗余力地降低模型的存储空间和计算量. 随着深度学习的发展,推理模型巨大的 ...

  4. 【性能测试】常见的性能问题分析思路(二)案例&技巧

    上一篇介绍了性能问题分析的诊断的基本过程,还没看过的可以先看下[性能测试]常见的性能问题分析思路-道与术,精炼总结下来就是,当遇到性能问题的时候,首先分析现场,然后根据现象去查找对应的可能原因,在通过 ...

  5. MySQL:互联网公司常用分库分表方案汇总!

    一.数据库瓶颈 不管是IO瓶颈,还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值.在业务Service来看就是,可用数据库连接少甚至无连接可用.接下来就 ...

  6. 要web开发精品教程吗?免费无广告一百期连讲的那种-逐浪CMS前端开发100期入门教程全面开放

    要web开发精品教程吗?免费无广告一百期连讲的那种-逐浪CMS前端开发100期入门教程全面开放 大师主讲 经验难得 由逐浪CMS首席架构师发哥老师,亲自主理讲解. 历时一年精心打造, 汇聚了互联网诞生 ...

  7. 一文分析 Android现状及发展前景

    Coding这些年,一直低头"搬砖",好像从未仔细审视过Android的发展现状,亦未好好思考Android的发展前景."低头干活,还要抬头看路",写一篇文章简 ...

  8. 你真的懂Redis的5种基本数据结构吗?

    摘要: 你真的懂Redis的5种基本数据结构吗?这些知识点或许你还需要看看. 本文分享自华为云社区<你真的懂Redis的5种基本数据结构吗?这些知识点或许你还需要看看>,作者:李子捌. 一 ...

  9. CVPR 之 老照片修复

    周末闲来无事,随手整理电脑里的照片,望着一张物是人非的老相片,勾起了斑驳的回忆.忽尔转念一想,何不 PS 下,但 PhotoShop 有些大且不免费自己懒得装,于是,转向免费的图像复原软件. 网上搜来 ...

  10. [luogu4718]Pollard-Rho算法

    模板题 题解主要分为两部分,即Miller-Robin判素数以及关于Pollard-Rho算法 1.Miller-Robin判素数 对于一个数$n$,判定其是否为素数,依次执行以下几步-- (1)若$ ...