获取今天的年月日

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date();
String today = sdf.format(new Date());
System.out.println("今天:"+today); //获取今天的年月日,2019-09-11

年月日 时分秒的格式:yyyy-MM-dd HH:mm:ss

指定日期字符串--转换为--日期格式Calendar

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date thisDate = sdf.parse("2020-01-01");
Calendar cld = Calendar.getInstance();
cld.setTime(thisDate);
String thisDay = sdf.format(cld.getTime());
System.out.println("指定日期:"+thisDay); //获取指定日期的年月日,2020-01-01

获取指定日期所属月份的最后一天

第一种方法

//指定日期字符串--转换为--日期格式Calendar
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date thisDate = sdf.parse("2019-09-15");
Calendar cld = Calendar.getInstance();
cld.setTime(thisDate);

//月份+1,天设置为0。下个月第0天,就是这个月最后一天
cld.add(Calendar.MONTH, 1);
cld.set(Calendar.DAY_OF_MONTH, 0); 
String lastDay = sdf.format(cld.getTime());
System.out.println("本月最后一天:"+lastDay); //2019-09-30

cld.set(Calendar.DAY_OF_MONTH,1);
System.out.println("本月第一天:"+ sdf.format(cld.getTime()) ); //2019-09-01

第二种方法,

据说Calendar类的set()有陷阱,保险起见还是用第一种方法吧,https://blog.csdn.net/freelk/article/details/78427207

//指定日期字符串--转换为--日期格式Calendar
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date thisDate = sdf.parse("2019-09-15");
Calendar cld = Calendar.getInstance();
cld.setTime(thisDate);
        
//月份+1,天设置为0。下个月第0天,就是这个月最后一天
cld.set(cld.get(Calendar.YEAR), cld.get(Calendar.MONTH)+1, 0); 
String lastDay = sdf.format(cld.getTime());
System.out.println("本月最后一天:"+lastDay); //2019-09-30

获取指定日期的上周的第一天、最后一天,即周一和周日

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Locale;

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式
Calendar cld = Calendar.getInstance(Locale.CHINA); //使用中国时区得到一个日历
cld.setTime(sdf.parse("2019-12-22"));
cld.add(Calendar.DATE, -7);
cld.setFirstDayOfWeek(Calendar.MONDAY); //以周一为首日

cld.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); //周一
System.out.println(sdf.format(cld.getTime()));

cld.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); //周日
System.out.println(sdf.format(cld.getTime()));

Calendar 的get方法

Calendar cld = Calendar.getInstance();  
System.out.println("Current Date: " + cld.getTime()); //Current Date: Wed Sep 11 08:17:25 CST 2019
System.out.println("Year: " + cld.get(Calendar.YEAR)); //2019
System.out.println("Month: " + (cld.get(Calendar.MONTH) + 1)); //9,格林威治日历是0~11,所以要加1
System.out.println("Day: " + cld.get(Calendar.DATE)); //11,当前日期2019-09-11
System.out.println("Hour: " + cld.get(Calendar.HOUR)); //8,当前时间08:20:25
System.out.println("HOUR_OF_DAY: " + cld.get(Calendar.HOUR_OF_DAY)); //8,当前时间08:20:25
System.out.println("Minute: " + cld.get(Calendar.MINUTE)); //20,当前时间08:20:25
System.out.println("Second: " + cld.get(Calendar.SECOND)); //25,当前时间08:20:25
System.out.println("DAY_OF_WEEK: " + cld.get(Calendar.DAY_OF_WEEK)); //4,周三,西方周日是1
System.out.println("DAY_OF_MONTH: " + cld.get(Calendar.DAY_OF_MONTH)); //11,当前日期2019-09-11
System.out.println("DAY_OF_YEAR: " + cld.get(Calendar.DAY_OF_YEAR)); //254,当前日期2019-09-11

System.out.println("当前日期字符串:" + cld.get(Calendar.YEAR) + "-" + (cld.get(Calendar.MONTH) + 1) + "-" + cld.get(Calendar.DATE) + " "  
        + cld.get(Calendar.HOUR) + ":" + cld.get(Calendar.MINUTE) + ":" + cld.get(Calendar.SECOND));  //2019-9-11 8:20:25

getActualMaximum方法:

之前有个BUG,如果设置2017年2月,获取的日期是2017-03-03,而其他月份没有问题,

原因是Calendar类在set的时候,并不会立即生效,只有在get的时候才会生效,

解决方法是在实例化Calendar类之后,要先调用clear()方法清空缓存。

Calendar calendar=Calendar.getInstance();
calendar.clear();
calendar.set(Calendar.YEAR, 2017);
calendar.set(Calendar.MONTH, 1);
int lastDay=calendar.getActualMaximum(calendar.DAY_OF_MONTH); //另外有getActualMinimum()
System.out.println("2017年2月最后一天是:"+lastDay); //28
calendar.set(Calendar.DAY_OF_MONTH, lastDay);
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
System.out.println(sdf.format(calendar.getTime())); //2017-02-28

JAVA Calendar获取某月第一天、最后一天,某周的第一天、最后一天相关推荐

  1. Java Calendar获取当前日期的当月第一天

    Calendar获取当前日期的当月第一天 public class CalendarTest {/*** 获取当前日期的当月第一天** @return String*/public static St ...

  2. Java Calendar 获取时间为明天的上午10点

    Java 获取时间为明天的上午10点 public static void main(String[] args) {Calendar calendar = new GregorianCalendar ...

  3. java calendar获取日期_Java使用Calendar获取当前日期

    使用Calendar创建日期类型对象,由于Calendar是抽象类不能直接new,使用getInstance()方法创建实例对象,具体看参考API(java.util.Calendar):另外,可通过 ...

  4. java自动获取时间 月代码_【java代码获取系统时间和执行定时任务】

    获取系统时间 主要类简介 SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类.它允许进行格式化(日期 -> 文本).解析(文本 -> 日期)和规范化. ...

  5. Java 时间相关 获取某月的某一天

    //获得当前时间的下个月十号 Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.DAY_OF_MONTH, 10); ...

  6. 获取一个月,三个月,一周,几天前的日期,年份

    参考dayjs官网 https://dayjs.fenxianglu.cn/category/#typescript 下载网址 1.使用方法,可以安装也可以直接引入 1.安装参考官网点击跳转 2.先下 ...

  7. java calendar 设置小时_Calendar 日历类的时间操作

    我们经常会涉及到对时间的处理,例如登陆网站,我们会看到网站首页显示XXX,欢迎您!今天是XXXX年....某些网站会记录下用户登陆的时间,比如银行的一些网站,对于这些经常需要处理的问题,Java中提供 ...

  8. calendar获取本周一的日期_Java Calendar 获取本周周一和周日代码

    Java Calendar 获取本周周一和周日代码 /** * 得到本周周一 * * @return yyyy-MM-dd */ public static String getMondayOfThi ...

  9. JAVA获取前一个月的第一天和最后一天

    需求:需要实现获取前一个月的第一天和最后一天 实现如下: package com.date;import java.text.SimpleDateFormat; import java.util.Ca ...

最新文章

  1. Ext结合DWR的关键代码(运行成功的DWRProxy)
  2. Eclipse启动失败:No java virtual machine was found after searching the follwing locations
  3. JUC并发编程五 并发架构--Monitor工作原理
  4. 当今世界最受人们重视的十大经典算法
  5. matplotlib 高阶之Transformations Tutorial
  6. jpa 查询 列表_终极JPA查询和技巧列表–第1部分
  7. 有两个链表a,b,设结点包括学号,姓名。从a链表中删去与b链表中有相同学号的那些结点。
  8. Hexo+GitHub 快速搭建个人博客(一)---- 基本部署
  9. hbase hmaster启动起来就自动关闭
  10. upload组件 获得焦点_HTML Input FileUpload autofocus用法及代码示例
  11. Oblivion Sound Lab Hex Drum Mac - 虚拟鼓声乐器
  12. activiti5 工作流
  13. vs code 安装 IIS Express
  14. 红外线相关的论文(可见光和红外图像融合、红外图像增强、红外图像目标检测、红外图像分割...)
  15. apache VSF 操作类
  16. SmartUpload用法
  17. oracle 如何防止锁表,oracle锁表该如何解决
  18. frp内网穿透并实现开机自启动
  19. android抖音布局,Android快速集成抖音分享
  20. android权限集合

热门文章

  1. ArcGIS Pro数据发布共享至ArcGIS Online
  2. 最优控制理论 二、哈密尔顿函数法
  3. ArcGIS基础——要素数据格式(三)
  4. oracle 触发器 execute immediate,过程、触发器、用户定义函数和批处理中使用的 EXECUTE IMMEDIATE...
  5. 使用Vitamio打造自己的Android万能播放器—— 手势控制亮度、音量、缩放
  6. 激光雷达远距离灰尘扬尘烟雾粉尘检测
  7. catfish CMS访问sitemap.xml出现404错误
  8. matlab中lingrog,基于Matlab的可编程逻辑微机保护的研究.pdf
  9. 抖音上传视频显示转成mp4怎么设置_详细的mp4转换成mp3格式的方法,不看后悔系列!...
  10. Matlab:三角剖分表示法