java日期相关
JAVA中获得一个月最大天数的方法
参考博客:http://www.cnblogs.com/relucent/p/4566582.html
Calendar 类是一个抽象类,为日历字段之间的转换提供了一些方法。
其中有一个重要方法 getActualMaximum ,该方法用于返回指定日历字段实际的最大值。
利用这个方法(Calendar.getActualMaximum),我们可以获得某年某月的天数。
代码如下:
- /**
- * 获得某个月最大天数
- *
- * @param year 年份
- * @param month 月份 (1-12)
- * @return 某个月最大天数
- */
- public int getMaxDayByYearMonth(int year, int month) {
- Calendar calendar = Calendar.getInstance();
- calendar.set(Calendar.YEAR, year);
- calendar.set(Calendar.MONTH, month-1);
- return calendar.getActualMaximum(Calendar.DATE);
- }
备注:以上代码有两个需要注意的地方:
① Calendar除了getActualMaximum方法之外,还有一个看起来类似的方法getMaximum,但是这两个方法是不同的:
getActualMaximum 返回实际的最大数值,getMaximum 返回的是可能的最大数值。
上面的代码如果改成getMaximum,那么一般情况都会恒定的返回31 (月份中可能的最大天数是31)
② Calendar 的月份取值范围是 0 - 11 , 0代表1月 11代表12月份
(这是因为Java中的月份遵循了罗马历中的规则:当时一年中的月份数量是不固定的,第一个月是JANUARY。而Java中Calendar.MONTH返回的数值其实是当前月距离第一个月有多少个月份的数值,JANUARY在Java中返回“0”,所以我们操作月份的时候会根据需要做 +1 或 -1 的处理)
获取年月日时分秒星期
- public void test1() {
- // 获取年
- int year = calendar.get(Calendar.YEAR);
- // 获取月,这里需要需要月份的范围为0~11,因此获取月份的时候需要+1才是当前月份值
- int month = calendar.get(Calendar.MONTH) + 1;
- // 获取日
- int day = calendar.get(Calendar.DAY_OF_MONTH);
- // 获取时
- int hour = calendar.get(Calendar.HOUR);
- // int hour = calendar.get(Calendar.HOUR_OF_DAY); // 24小时表示
- // 获取分
- int minute = calendar.get(Calendar.MINUTE);
- // 获取秒
- int second = calendar.get(Calendar.SECOND);
- // 星期,英语国家星期从星期日开始计算
- int weekday = calendar.get(Calendar.DAY_OF_WEEK);
- System.out.println("现在是" + year + "年" + month + "月" + day + "日" + hour+ "时" + minute + "分" + second + "秒" + "星期" + weekday);
- }
一年后的今天
- // 一年后的今天
- @Test
- public void test2 () {
- // 同理换成下个月的今天calendar.add(Calendar.MONTH, 1);
- calendar.add(Calendar.YEAR, 1);
- // 获取年
- int year = calendar.get(Calendar.YEAR);
- // 获取月
- int month = calendar.get(Calendar.MONTH) + 1;
- // 获取日
- int day = calendar.get(Calendar.DAY_OF_MONTH);
- System.out.println("一年后的今天:" + year + "年" + month + "月" + day + "日1 }
- }
获取任意一个月的最后一天
- @Test
- public void test3 () {
- // 假设求6月的最后一天
- int currentMonth = 6;
- // 先求出7月份的第一天,实际中这里6为外部传递进来的currentMonth变量
- //
- calendar.set(calendar.get(Calendar.YEAR), currentMonth, 1);
- calendar.add(Calendar.DATE, -1);
- // 获取日
- int day = calendar.get(Calendar.DAY_OF_MONTH);
- System.out.println("6月份的最后一天为" + day + "号");
- }
设置日期(注意:设置月份是8月,得到就是8月,不用加1)
- public void test4 () {
- calendar.set(Calendar.YEAR, 2000);
- System.out.println("现在是" + calendar.get(Calendar.YEAR) + "年");
- calendar.set(2008, 8, 8);
- // 获取年
- int year = calendar.get(Calendar.YEAR);
- // 获取月
- int month = calendar.get(Calendar.MONTH);
- // 获取日
- int day = calendar.get(Calendar.DAY_OF_MONTH);
- System.out.println("现在是" + year + "年" + month + "月" + day + "日");
- }
日期类和日历类互换
- //Calendar转化为Data
- //返回标准化的Date
- public static Date calendarToData(int year, int month, int day) {
- Calendar calendar = Calendar.getInstance();//日历类的实例化
- calendar.set(year, month - 1, day);//设置日历时间,月份必须减一
- Date date = calendar.getTime(); // 从一个 Calendar 对象中获取 Date 对象
- return date;
- }
- System.out.println(calendarToData(2017,3,16));//打印测试
- //Data转化为Calendar
- //返回的的是日历类里面有关时间的全部信息。
- public static Calendar dataToCalendar(Date date) {
- Calendar calendar = Calendar.getInstance();
- calendar.setTime(date);
- return calendar;
- }
- Date date = new Date();//直接new对象,获取的是当前时间
- System.out.println(dataToCalendar(date));//打印测试
得到任意时间段得到时间集合List
- public static List getDateList(String time1, String time2) {
- ArrayList<String> list = new ArrayList<>();
- Date date1 =null;
- Date date2 =null;
- SimpleDateFormat dateFormat2 = new SimpleDateFormat("yyyy-MM-dd");
- try {
- date1= dateFormat2.parse(time1);
- date2= dateFormat2.parse(time2);
- } catch (ParseException e) {
- e.printStackTrace();
- }
- Calendar calendar = Calendar.getInstance();//日历类的实例化
- while(date1.before(date2)){
- calendar.setTime(date1);
- String s = dateFormat2.format(date1);
- calendar.add(Calendar.DAY_OF_MONTH,1);
- date1=calendar.getTime();
- list.add(s);
- }
- return list;
- }
java日期相关的更多相关文章
- Java日期相关操作
1.获得日期 在旧版本 JDK 的时代,有不少代码中日期取值利用了 java.util.Date 类,但是由于 Date 类不便于实现国际化,其实从 JDK1.1 开始,就更推荐使用 java.uti ...
- Java基础之Java常用类--Object类,字符串相关类,包装类,日期相关类,数字相关类
Java是一种面向对象的语言,也就是将万事万物可以描述为对象,特点如下: 1.面向对象是常见的一种思考习惯,符合人们的思考习惯.2.面向对象的出现,将复杂的事情简单化.3.面向对象的出现,将之前过程中 ...
- Java工具类——日期相关的类
前言 在日常的开发工作当中,我们经常需要用到日期相关的类(包括日期类已经处理日期的类),所以,我就专门整理了一篇关于日期相关的类,希望可以帮助到大家. 正文 一.日期类介绍 在 Java 里面,操作日 ...
- ☕【Java深层系列】「技术盲区」让我们一起完全吃透针对于时间和日期相关的API指南
技术简介 java中的日期处理一直是个问题,没有很好的方式去处理,所以才有第三方框架的位置比如joda.文章主要对java日期处理的详解,用1.8可以不用joda. 时间概念 首先我们对一些基本的概念 ...
- Java日期处理类的相关使用
java常用类-java日期处理类 Date类 Date类是jdk给我们提高的标准日期类,在java.util包下: 示例代码: import java.util.Date; public class ...
- Android随笔之——Android时间、日期相关类和方法
今天要讲的是Android里关于时间.日期相关类和方法.在Android中,跟时间.日期有关的类主要有Time.Calendar.Date三个类.而与日期格式化输出有关的DateFormat和Simp ...
- [转]Java日期时间使用总结
原文地址:http://lavasoft.blog.51cto.com/62575/52975/ 一.Java中的日期概述 日期在Java中是一块非常复杂的内容,对于一个日期在不同的语言国别环境中 ...
- java日期处理总结
Java日期时间使用总结 一.Java中的日期概述 日期在Java中是一块非常复杂的内容,对于一个日期在不同的语言国别环境中,日期的国际化,日期和时间之间的转换,日期的加减运算,日期的展示格式 ...
- Java日期时间使用总结
一.Java中的日期概述 日期在Java中是一块非常复杂的内容,对于一个日期在不同的语言国别环境中,日期的国际化,日期和时间之间的转换,日期的加减运算,日期的展示格式都是非常复杂的问题. 在J ...
随机推荐
- mac安装VMware虚拟机(含序列号)及Ubuntu系统
首先去官网下载虚拟机,这里下载vmware fusion 10的版本: https://www.vmware.com/products/fusion/fusion-evaluation.html 下载 ...
- Install Kernel 3.10 on CentOS 6.5
http://bicofino.io/2014/10/25/install-kernel-3-dot-10-on-centos-6-dot-5/ https://gree2.github.io/lin ...
- Install Jetty web server on CentOS 7 / RHEL 7
http://www.eclipse.org/jetty/download.html http://www.eclipse.org/jetty/documentation/current/startu ...
- activiti engine.schema.update DB_SCHEMA_UPDATE_FALSE
engine.properties # engine propertiesengine.schema.update=trueengine.activate.jobexecutor=falseengin ...
- [Wiki].NET框架
.NET框架 建议将.NET Framework 3.0并入本条目或章节.(讨论) .NET框架 .NET框架的组件堆栈 开发者 Microsoft 初始版本 2002年2月13日,16年前 稳定 ...
- 如何禁止复制电脑文件到U盘、禁止U盘拷贝文件
在公司局域网中,有时候我们处于保护电脑文件安全和商业机密的需要,会禁止局域网电脑使用U盘.禁用USB存储设备:或者禁止通过U盘复制电脑文件.禁止U盘拷贝公司电脑文件.那么,怎样实现呢?本文提供两种方法 ...
- 如何判断一条记录什么字段被修改了 [问题点数:40分,结帖人bluesukeke]
查询出来数据,在数据集编辑状态下,如何判断一条记录被修改了,哪些字段被修改了. 可用adoquery的Delta屬性...eg: ClientDataSet1.Delta... PS:POST前是準確 ...
- js對象構造
創建對象的3種方式: 1. var a=new Object() a.attributes=“1”: 2. var a={attributes:"1",aa:"2&quo ...
- js 实现List
js 实现List 列表是一组有序的数据.每个列表中的数据项称为元素.在 JavaScript 中,列表中的元素可以是任意数据类型. 我们可以根据数组的特性来实现List. List 抽象数据类型定义 ...
- 科普一下bl锁的知识,没解锁的必看!
今天给大家科普一下. 科普分为两版,一个详细版一个简单版.简单版往下翻. bl是什么?其实详细的我也不知道,我就知道原理和他的全称是bootloader.我们所说的解锁里面的“锁”,就是blbl锁的功 ...