下边代码用于获取不同的日期,作为字典用起来比较方便,记录在此:
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());;
}
}
分享到:
相关推荐
9. **例12.32 格式文本框**:可能涉及到JFormattedTextField的使用,该组件允许用户输入符合特定格式的数据,如日期、数字等。 10. **例16.15 使用GeneralPath类绘制任意图形**:GeneralPath是一个用于构建几何路径...
本教程涵盖了Java动态代理的基本原理和使用,以及Java 8的重要新特性,包括Lambda表达式、方法引用、Stream API和日期时间API。同时,介绍了AOP的概念及其在Spring框架中的应用。通过学习这些内容,开发者可以更好地...
学生提问:当我们使用编译C程序时,不仅需要指定存放目标文件的位置,也需要指定目标文件的文件名,这里使用javac编译Java程序时怎么不需要指定目标文件的文件名呢? 13 1.5.3 运行Java程序 14 1.5.4 根据...
根据给定的文件信息,以下是对... Java中日期转换为字符串的示例 将`java.util.Date`对象转换为特定格式的字符串通常使用`SimpleDateFormat`类实现,这是一个非常实用的功能,尤其是在处理用户界面显示或日志记录时。
- **应用场景举例:** 如何合理使用这些修饰符来实现封装性。 #### 5. JSP与Servlet的区别与联系 **知识点概述:** - **JSP与Servlet的基本概念:** JSP 是基于 Servlet 技术的一种简化方式,主要用于动态网页开发...
Quratz是一个广泛使用的Java作业调度框架,它提供了灵活的时间触发机制,使得开发者能够轻松地在应用程序中安排和执行任务。本篇文章将深入探讨Quratz的工作原理,并通过一个具体的Java进程信号量机制的实验程序为例...
比如对Java 8中的Lambda表达式、Stream API、新的日期时间API等的掌握。 12. 实战能力:在面试过程中,面试官经常通过项目经验来评估面试者的实战能力。这包括对项目的设计思路、关键问题的解决方法、以及如何优化...
**日志框架Log4j详解** 日志框架在软件开发中扮演着至关重要的角色,它提供了记录应用程序运行过程中的各种...在Java开发中,正确使用Log4j可以帮助开发者更好地理解和诊断应用程序的问题,从而提高软件质量和维护性。
**步骤3:在Velocity模板中使用本地化** 在Velocity模板文件(如`index.vm`)中,你可以通过工具类访问本地化消息: ```html $resource.getMessage('title') $resource.getMessage('helloMessage') ``` ...
- **举例**:在某些语言中,使用 `Date` 函数可以返回当前的日期和时间。 ### 3. 数据传输有效性的指标 **知识点**:衡量数据传输效率的指标。 - **描述**:在计算机网络中,数据传输的有效性通常通过传输速率来...
Apache POI 是一个广泛使用的 Java 库,它允许程序员读写 Microsoft Office 格式的文件,特别是 Excel 文件。POI 提供了两种主要的接口来处理 Excel 数据:HSSF(Horrible SpreadSheet Format)用于处理 .xls 文件,...
Java Bean是一种可重用的软件组件,主要用于Java应用程序中的数据封装和交互。它遵循JavaBeans规范,该规范定义了如何创建具有属性、事件和方法的组件,使其能在构建工具中可视化操作。Java Beans通常具有默认构造...
- 最后,在JSP页面中使用自定义标签。 4. **使用自定义标签的优势** - **代码复用**:自定义标签可以封装常用的功能,减少代码重复。 - **提高可读性**:标签形式的代码更接近HTML,易于理解和维护。 - **松...
举例来说,在Struts登录示例中,`validator-rules.xml`文件中`required`验证部分的代码定义了一个验证器,它会在表单提交时检查字段是否为空。如果字段为空,就会触发错误消息,该消息的标识符是`errors.required`,...
- **6.1.2 使用beans**:在JSP页面中使用JavaBeans来处理业务逻辑和数据操作。 - **6.2 beans的存放目录** - JavaBeans应存放在WEB-INF/lib目录下,以保护它们不被直接访问。 - **6.3 获取和修改beans的属性** - ...
这部分主要介绍了 JSP 中使用的脚本元素和指令。 **5.2 JSP脚本元素** - **表达式** - 示例: `<%= new java.util.Date() %>` - **脚本片段** - 示例: `; %> , " + name %>` - **声明** - 示例: `! int count = ...
在Java Web开发中,Struts框架是一个非常流行的MVC(模型-视图-控制器)架构,它极大地简化了处理用户输入和业务逻辑的过程。Validator框架是Struts的一个重要组件,用于进行数据验证,确保用户提交的数据符合预设的...
- 如何在Struts2中使用拦截器? - 如何在Struts中实现国际化? - 当发生异常时,Struts是如何处理的? - 举例说明Tiles框架在Struts中的应用。 - Struts2相比于Struts1有哪些改进? 了解和熟练掌握这些知识点,将有...