`
aswang
  • 浏览: 838646 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

java日期相关方法备忘

    博客分类:
  • java
 
阅读更多

 

public class DateUtil {

	private final static String format = "yyyy-MM-dd";
	
	/**
	 * 日期格式转换为字符串
	 * 
	 * @param date
	 * @return
	 */
	public static String dateToString(Date date){
		if(date != null){
			SimpleDateFormat sdf = new SimpleDateFormat(format);
			return sdf.format(date);
		}else{
			return "-";
		}
	}
	
	/**
	 * 将指定格式的字符串转换为日期
	 * @param str
	 * @return
	 */
	public static Date stringToDate(String str){
		Date date = null ;
		if( str != null && str.matches("\\d{4}-\\d{1,2}-\\d{1,2}")){
			SimpleDateFormat sdf = new SimpleDateFormat(format);
			try {
				date = sdf.parse(str);
			} catch (ParseException e) {
				System.out.println("日期转换失败!");
				e.printStackTrace();
			}
		}
		return date ;
	}
	
	/**
	 * 计算两个日期之间的天数
	 * 
	 * @param startDate
	 * @param endDate
	 * @return
	 */
	public static Long countDayBetweenDate(Date startDate, Date endDate){
		Calendar fromCalendar = Calendar.getInstance();
        fromCalendar.setTime(startDate);
        fromCalendar.set(Calendar.HOUR_OF_DAY, 0);
        fromCalendar.set(Calendar.MINUTE, 0);
        fromCalendar.set(Calendar.SECOND, 0);
        fromCalendar.set(Calendar.MILLISECOND, 0);
  
        Calendar toCalendar = Calendar.getInstance();
        toCalendar.setTime(endDate);
        toCalendar.set(Calendar.HOUR_OF_DAY, 0);  
        toCalendar.set(Calendar.MINUTE, 0);
        toCalendar.set(Calendar.SECOND, 0);
        toCalendar.set(Calendar.MILLISECOND, 0);
        
        return (toCalendar.getTime().getTime() - fromCalendar.getTime().getTime()) / (1000 * 60 * 60 * 24);
	}
	
	/**
	 * 计算两个日期之间的月数
	 * @param startDate
	 * @param endDate
	 * @return
	 */
	public static int countMonthBetweenDate(Date startDate,Date endDate){
		int months = 0 ;
		Calendar tmpStartCalendar = Calendar.getInstance() ;
		tmpStartCalendar.setTime(startDate);
		while(true){
			tmpStartCalendar.add(Calendar.MONTH, 1);
			Date tmpStartDate = tmpStartCalendar.getTime() ;
			if( compareDates(endDate,tmpStartDate) ){
				months += 1 ;
			} else {
				break ;
			}
		}
		return months; 
	}
	
	/**
	 * 获取给定日期的指定月份的天数
	 * @param date
	 * @return
	 */
	public static int getDaysOfMonth(Date date){
		Calendar c = Calendar.getInstance();
		//设置为该月,例如08年1月,日期随意
		c.setTime(date);
		//获得该月的日期
		int max = c.getActualMaximum(Calendar.DATE);
		return max ;
	}
	
	/**
	 * 比较两个日期的大小
	 * 如果两个日期相等,那么将认为第一个日期大于第二个日期
	 * @param d1
	 * @param d2
	 * @return
	 */
	private static boolean compareDates(Date d1 ,Date d2){
		if( d1.getTime() - d2.getTime() >= 0){
			return true ;
		}
		return false ;
	}
}
 

 

0
1
分享到:
评论

相关推荐

    java实现备忘时钟

    用java实现备忘时钟,适合初学者,用java实现备忘时钟,适合初学者,

    Java日历及备忘录

    Java写的一个类似windows自带的日历程序,他除了可以浏览日期外,还可以在特定的时间点写备忘录,当到达该时间点时会有弹窗提示。

    备忘录JAVA代码

    实现备忘录基本功能,可以显示年月日日历,点击任意一日期可以写备忘录,写完保存后在点这个日期则跳出窗口说该日期有备忘录

    swing javadb 备忘录 记事本 临时记事

    一个自己写的备忘录程序,可以用标题和内容的形式记录一些信息,可以按照标题、记录日期、信息类型查询,导出excel数据。另外提供到期提示和闹钟功能。使用javadb嵌入式数据库,swing外观。提供Eclipse工程源代码和...

    记事备忘录

    用java编写的记事备忘录,支持系统托盘,日期查找,记事备忘等功能

    Java基础知识点总结.docx

    <java.lang>.Date:日期类,月份从0—11 92 <java.lang> Calendar:日历类 93 十六、 IO流:用于处理设备上数据 ★★★★★ 94 IO流的概念 95 字符流与字节流 98 流对象 101 File类 102 Java.util.Properties 103 ...

    备忘录模块使用

    备忘录模块使用说明书 配置源程序 附加数据库SQL Server 2000 (1)将DataBase文件夹中的两个文件...添加完备忘信息后,在万年历相应的日期右下角会有个灰色的标记,单击可查看该日期的所有备忘信息。 图1.4 首页日历

    Java课程设计实验报告及全部源码流程图.doc

    PoliceListen主要是用来定义日历日期按钮事件的监听,用以监听当点击相关日期时会 弹出相应日期的备忘记事的窗口来。PoliceListen2主要是定义备忘录窗口中添加按钮的 时间监听,使其被点击后能够显示添加备忘记事...

    Java课程设计实验报告.docx

    而这次的Java程序设计可以说与以往大不相同,先是在课堂上老师讲述了有关的基础理论、基本语法知识,而后再加上这两周的课程设计,可以说是真正能够体会到程序编程的乐趣,也第一次发现自己原来对程序设计是如此的感...

    【白雪红叶】JAVA学习技术栈梳理思维导图.xmind

    关于java程序员发展需要学习的路线整理集合 技术 应用技术 计算机基础知识 cpu mem disk net 线程,进程 第三方库 poi Jsoup zxing Gson 数据结构 树 栈 链表 队列 图 操作系统 linux 代码控制...

    java个人日程安排管理系统mysql.zip

    基于Web技术的B/S结构的个人日程安排管理系统。...日程管理就是将每天的工作和事务安排在日期中,并做一个有效的记录,方便管理日常的工作和事务,达到工作备忘的目的,同时也具有对日常工作进行指导、监督的作用。

    java收银系统源码-pyspark-cheatsheet:PySpark备忘单-学习PySpark并更快地开发应用程序

    java收银系统源码PySpark 备忘单 此备忘单将帮助您学习 PySpark 并更快地编写 PySpark 应用程序。 这里的所有内容都是功能齐全的 PySpark 代码,您可以运行或适应您的程序。 这些片段在 CC0 1.0 通用许可证下获得...

    calendar.zip_Java编程_Java_

    Java万年历 可以查看前后一百年的日历,可以选择一个日期并在此写下备忘录

    java-palm-desktop-file-management-开源

    允许访问(读取、写入、显示)Palm 桌面文件的类的完整 Java 源代码:日期簿、地址簿、备忘录和待办事项。 使用 Windows 版 Palm 桌面 3.0.1 版进行测试。

    员工考勤管理系统源码java-github_stars:github之星列表

    员工考勤管理系统源码java GitHub 星星 只是我的 github 星列表,以便于搜索。 回购网址 描述 编程语言 日期 基于实验混合器的快速迭代可视化系统 JavaScript 2020 年 4 月 12 日 :ringed_planet: (ringed_planet) ...

    微信小程序家庭财务收支平台app设计后端SSM可升级SpringBoot

    用了技术框架:微信小程序客户端 + Java后台服务器端,api接口通信 + mysql数据库 ## 管理员:a/a 用户:客户端注册 运行环境:jdk1.8/jdk1.9 IDE环境: Eclipse,Myeclipse,IDEA都可以 tomcat环境: Tomcat8.x/9.x...

    微信小程序家庭财务收支平台app设计后端SSM+源代码+文档说明+数据库.zip

    用了技术框架:微信小程序客户端 + Java后台服务器端,api接口通信 + mysql数据库 管理员:a/a 用户:客户端注册 运行环境:jdk1.8/jdk1.9 IDE环境: Eclipse,Myeclipse,IDEA都可以 tomcat环境: Tomcat8.x/9.x ...

Global site tag (gtag.js) - Google Analytics