`

java中使用日期组件举例

    博客分类:
  • java
阅读更多
下边代码用于获取不同的日期,作为字典用起来比较方便,记录在此:
package com.timelypower.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class DateUtils {

	private final static String dateFormat = "yyyy-MM-dd";
	private static Log log = LogFactory.getLog(DateUtils.class);
	
	/**
	 * 按照指定格式返回格式好的当前日期
	 * @param dateFormat 默认yyyy-MM-dd
	 * @return
	 */
	public static String getCurrentDateString(String dateFormat){
		return DateUtils.format(new Date(), dateFormat);
	}
	/**
	 * 说明 将日期格式化字符串,为null的返回空字符串
	 * @param date
	 * @return
	 */
	public static String format(Date date){
		if(null == date)
			return "";
		SimpleDateFormat sf = new SimpleDateFormat(dateFormat);
		return sf.format(date);
	}
	/**
	 * 说明 将日期格式化字符串,为null的返回空字符串
	 * @param date 日期
	 * @param dateFormat 格式化字符串,比如:yyyy-MM-dd
	 * @return
	 */
	public static String format(Date date,String dateFormat){
		if(null == dateFormat || "".equals(dateFormat))
			return DateUtils.format(date);
		if(null == date)
			return "";
		SimpleDateFormat sf = new SimpleDateFormat(dateFormat);
		return sf.format(date);
	}
	
	/**
	 * @说明 将指定的字符串格解析成日期类型,格式默认为:yyyy-MM-dd
	 * @param source 要进行解析的源字符串
	 * @return
	 */
	public static Date parase(String source)
	{
		SimpleDateFormat sf = new SimpleDateFormat(dateFormat);
		try {
			return sf.parse(source);
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			//e.printStackTrace();
			log.info("DataUtils.parase方法出错:"+e.getMessage());
		}
		return null;
	}
	/**
	 * @说明 将指定的字符串格解析成日期类型 例:如果日期source=20131210,则dateFormat应为:yyyyMMdd,两个应对应
	 * @param source 要进行解析的源字符串
	 * @param dateFormat 要解析的日期格式。
	 * @return
	 */
	public static Date parase(String source,String dateFormat )
	{
		SimpleDateFormat sf = new SimpleDateFormat(dateFormat);
		try {
			return sf.parse(source);
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			//e.printStackTrace();
			log.info("DataUtils.parase方法出错:"+e.getMessage());
		}
		return null;
	}
	
	/**
	 * @说明 对指定的日期增加或减少指定的天数
	 * @param date
	 * @param days
	 */
	public static Date addDays(Date date,int days){
		Calendar cal = Calendar.getInstance();
		cal.setTime(date);
		
		cal.add(Calendar.DAY_OF_MONTH, days);
		
		return cal.getTime();
	}
	
	/**
	 * @说明 对指定的日期增加或减少指定的天数
	 * @param date
	 * @param days
	 */
	public static Calendar addDays(Calendar date,int days){
		
		date.add(Calendar.DAY_OF_MONTH, days);
		
		return date;
	}
	
	/**
	 * @说明 对指定的日期增加或减少指定的月数
	 * @param date
	 * @param months
	 * @return
	 */
	public static Date addMonths(Date date,int months){
		Calendar cal = Calendar.getInstance();
		cal.setTime(date);
		
		cal.add(Calendar.MONTH, months);
		
		return cal.getTime();
	}
	
	/**
	 * @说明 对指定的日期增加或减少指定的月数
	 * @param date
	 * @param months
	 * @return
	 */
	public static Calendar addMonths(Calendar date,int months){
		date.add(Calendar.MONTH, months);
		
		return date;
	}
	
	/**
	 * @说明 对指定的日期增加或减少指定的小时数
	 * @param date
	 * @param hours
	 * @return
	 */
	public static Date addHours(Date date ,int hours){
		Calendar cal = Calendar.getInstance();
		cal.setTime(date);
		
		cal.add(Calendar.HOUR_OF_DAY, hours);
		
		return cal.getTime();
	}
	
	/**
	 * @说明 对指定的日期增加或减少指定的小时数 
	 * @param date
	 * @param hours
	 * @return
	 */
	public static Calendar addHours(Calendar date ,int hours){
		date.add(Calendar.HOUR_OF_DAY, hours);
		return date;
	}
	
	/**
	 * @说明 以字符串形式返回当前时间的毫秒数
	 * @return
	 */
	public static String getTimeMillions(){
		Calendar cal = Calendar.getInstance();
		long lt = cal.getTimeInMillis();
		
		return String.valueOf(lt);
	}
	/**
	 * 获取当前月的第一天
	 * @return 当前月的第一天
	 */
	public static String getMonthFirstDay() {
        SimpleDateFormat df = new SimpleDateFormat(dateFormat);
        Calendar calendar = Calendar.getInstance();
        Date theDate = calendar.getTime();
        
        GregorianCalendar gcLast = (GregorianCalendar) Calendar.getInstance();
        gcLast.setTime(theDate);
        gcLast.set(Calendar.DAY_OF_MONTH, 1);
        String day_first = df.format(gcLast.getTime());
        StringBuffer str = new StringBuffer().append(day_first);
        return str.toString();

    }
    
    /**
	 * 获取当前月的最后一天
	 * @return 当前月的最后一天
	 */
	public static String getMonthLastDay() {
    	
    	Calendar calendar = Calendar.getInstance();
        //最后一天
         int maxday = calendar.getActualMaximum(Calendar.DATE);
         calendar.set(Calendar.DATE,maxday);
          
        SimpleDateFormat df = new SimpleDateFormat(dateFormat);
        Date theDate = calendar.getTime();
        String s = df.format(theDate);
        StringBuffer str = new StringBuffer().append(s);
        return str.toString();

    }
	/**
	 * 获得往数据库字段类型为Date型时,插入的时间
	 * @param date 默认为当前日期,如果为空时 方法会自动new Date()
	 * @param dateFormat 默认为yyyy-MM-dd
	 * @return
	 */
	public static java.sql.Date paraseSqlDate(String date,String dateFormat){
		try {
			if(date == null || date.length() == 0){
				return new java.sql.Date(new Date().getTime());
			}else{
				if(dateFormat == null)
					dateFormat = DateUtils.dateFormat;
				SimpleDateFormat sf = new SimpleDateFormat(dateFormat);
				Date d = sf.parse(date);
				return new java.sql.Date(d.getTime());
			}
		} catch (Exception e) {
			// TODO: handle exception
		}
		return null;
	}
	
	
	public static void main(String[] args) {
		System.out.println(DateUtils.format(DateUtils.addMonths(new Date(), -12)));
		System.out.println(getMonthLastDay());;
		System.out.println(getMonthFirstDay());;
	}
}

分享到:
评论

相关推荐

    北航版Java基础与实例精解9-17章源码

    9. **例12.32 格式文本框**:可能涉及到JFormattedTextField的使用,该组件允许用户输入符合特定格式的数据,如日期、数字等。 10. **例16.15 使用GeneralPath类绘制任意图形**:GeneralPath是一个用于构建几何路径...

    665.663.JAVA基础教程_动态代理与Java8新特性-AOP与动态代理的举例(665).rar

    本教程涵盖了Java动态代理的基本原理和使用,以及Java 8的重要新特性,包括Lambda表达式、方法引用、Stream API和日期时间API。同时,介绍了AOP的概念及其在Spring框架中的应用。通过学习这些内容,开发者可以更好地...

    疯狂JAVA讲义

    学生提问:当我们使用编译C程序时,不仅需要指定存放目标文件的位置,也需要指定目标文件的文件名,这里使用javac编译Java程序时怎么不需要指定目标文件的文件名呢? 13 1.5.3 运行Java程序 14 1.5.4 根据...

    java经典题目 共22页

    根据给定的文件信息,以下是对... Java中日期转换为字符串的示例 将`java.util.Date`对象转换为特定格式的字符串通常使用`SimpleDateFormat`类实现,这是一个非常实用的功能,尤其是在处理用户界面显示或日志记录时。

    java面试题题库详解

    - **应用场景举例:** 如何合理使用这些修饰符来实现封装性。 #### 5. JSP与Servlet的区别与联系 **知识点概述:** - **JSP与Servlet的基本概念:** JSP 是基于 Servlet 技术的一种简化方式,主要用于动态网页开发...

    quratz原理分析与举例

    Quratz是一个广泛使用的Java作业调度框架,它提供了灵活的时间触发机制,使得开发者能够轻松地在应用程序中安排和执行任务。本篇文章将深入探讨Quratz的工作原理,并通过一个具体的Java进程信号量机制的实验程序为例...

    v4.0-JavaGuide面试突击版.pdf

    比如对Java 8中的Lambda表达式、Stream API、新的日期时间API等的掌握。 12. 实战能力:在面试过程中,面试官经常通过项目经验来评估面试者的实战能力。这包括对项目的设计思路、关键问题的解决方法、以及如何优化...

    log4j举例下载

    **日志框架Log4j详解** 日志框架在软件开发中扮演着至关重要的角色,它提供了记录应用程序运行过程中的各种...在Java开发中,正确使用Log4j可以帮助开发者更好地理解和诊断应用程序的问题,从而提高软件质量和维护性。

    Velocity本地化应用举例

    **步骤3:在Velocity模板中使用本地化** 在Velocity模板文件(如`index.vm`)中,你可以通过工具类访问本地化消息: ```html $resource.getMessage('title') $resource.getMessage('helloMessage') ``` ...

    2021-2022计算机二级等级考试试题及答案No.17764.docx

    - **举例**:在某些语言中,使用 `Date` 函数可以返回当前的日期和时间。 ### 3. 数据传输有效性的指标 **知识点**:衡量数据传输效率的指标。 - **描述**:在计算机网络中,数据传输的有效性通常通过传输速率来...

    POI操作Excel常用方法总结及对excel的读写举例讲述.pdf

    Apache POI 是一个广泛使用的 Java 库,它允许程序员读写 Microsoft Office 格式的文件,特别是 Excel 文件。POI 提供了两种主要的接口来处理 Excel 数据:HSSF(Horrible SpreadSheet Format)用于处理 .xls 文件,...

    32 数据转换总结及常见面试题目解析慕课专栏(1)1

    Java Bean是一种可重用的软件组件,主要用于Java应用程序中的数据封装和交互。它遵循JavaBeans规范,该规范定义了如何创建具有属性、事件和方法的组件,使其能在构建工具中可视化操作。Java Beans通常具有默认构造...

    JSP标签样例

    - 最后,在JSP页面中使用自定义标签。 4. **使用自定义标签的优势** - **代码复用**:自定义标签可以封装常用的功能,减少代码重复。 - **提高可读性**:标签形式的代码更接近HTML,易于理解和维护。 - **松...

    struts原理与实践(六)

    举例来说,在Struts登录示例中,`validator-rules.xml`文件中`required`验证部分的代码定义了一个验证器,它会在表单提交时检查字段是否为空。如果字段为空,就会触发错误消息,该消息的标识符是`errors.required`,...

    jsp 教程

    - **6.1.2 使用beans**:在JSP页面中使用JavaBeans来处理业务逻辑和数据操作。 - **6.2 beans的存放目录** - JavaBeans应存放在WEB-INF/lib目录下,以保护它们不被直接访问。 - **6.3 获取和修改beans的属性** - ...

    动态网页(JSP+Servlet)教程

    这部分主要介绍了 JSP 中使用的脚本元素和指令。 **5.2 JSP脚本元素** - **表达式** - 示例: `<%= new java.util.Date() %>` - **脚本片段** - 示例: `; %> , " + name %>` - **声明** - 示例: `! int count = ...

    validator验证框架的简单使用(struts)

    在Java Web开发中,Struts框架是一个非常流行的MVC(模型-视图-控制器)架构,它极大地简化了处理用户输入和业务逻辑的过程。Validator框架是Struts的一个重要组件,用于进行数据验证,确保用户提交的数据符合预设的...

    Struts(Printable).rar_interviews

    - 如何在Struts2中使用拦截器? - 如何在Struts中实现国际化? - 当发生异常时,Struts是如何处理的? - 举例说明Tiles框架在Struts中的应用。 - Struts2相比于Struts1有哪些改进? 了解和熟练掌握这些知识点,将有...

Global site tag (gtag.js) - Google Analytics