package cn.com.qmhd.tools;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date; public class DateUtils {
private static DateUtils dateUtils = null;
private Calendar calendar;
private SimpleDateFormat sdf; public static DateUtils getInstance(){
if (dateUtils==null) {
dateUtils=new DateUtils();
}
return dateUtils;
} /**
* 时间格式转换
* @param date 指定日期
* @param format 日期转换成字符串的格式,例如:"yyyy-MM-dd HH:mm:ss"
*/
public String date(Date date,String format){
sdf=new SimpleDateFormat(format);
String time=sdf.format(date);
return time;
} /**
* 获取当前时间
* @param format 日期转换成字符串的格式,例如:"yyyy-MM-dd HH:mm:ss"
* @return 返回字符串格式当前时间
*/
public String getNowDate(String format){
sdf = new SimpleDateFormat(format);
return sdf.format(new Date());
} //获取当前时间年份
public int getNowYear(){
return Calendar.getInstance().get(Calendar.YEAR);
} //获取当前时间月份
public int getNowMonth(){
return Calendar.getInstance().get(Calendar.MONTH)+1;
} //获取当前时间日期
public int getNowDay(){
return Calendar.getInstance().get(Calendar.DATE);
} //获取当前时间小时
public int getNowHour(){
return Calendar.getInstance().get(Calendar.HOUR_OF_DAY);
} //获取当前时间分钟
public int getNowMinute(){
return Calendar.getInstance().get(Calendar.MINUTE);
} //获取当前时间秒
public int getNowSecond(){
return Calendar.getInstance().get(Calendar.SECOND);
} /**获取指定某天的年、月、日、时、分、秒信息
* @param date 指定日期
* @param str 需要获取日期内信息名称
* @return 返回需要日期信息,当返回值为-1,则输入日期或者获取信息名称有误
*/
public int dateInfos(Date date,String str){
calendar=Calendar.getInstance();
calendar.setTime(date); int year=calendar.get(Calendar.YEAR);
int month=calendar.get(Calendar.MONTH)+1;
int day=calendar.get(Calendar.DATE);
int hour=calendar.get(Calendar.HOUR);
int minute=calendar.get(Calendar.MINUTE);
int second=calendar.get(Calendar.SECOND); if("year".equals(str)){
return year;
}else if("month".equals(str)){
return month;
}else if("day".equals(str)){
return day;
}else if("hour".equals(str)){
return hour;
}else if("minute".equals(str)){
return minute;
}else if("second".equals(str)){
return second;
} return -1;
} /**
* 获取指定日期之前或者之后某月第一天
* @param date 指定日期
* @param month 指定日期之前几月(负数)或者之后几月(正数),当month=0时,则得到指定日期当月
* @param format 指定之前几天(负数)或者之后几天(正数)
* @return 返回字符串格式日期
*/
public String getFirstDay(Date date,int month,String format){
calendar=Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.DAY_OF_MONTH,1);
calendar.add(Calendar.MONTH, month); Date getDate=calendar.getTime();
return date(getDate, format);
} /**
* 获取指定日期之前或者之后某月最后一天
* @param date 指定日期
* @param month 指定日期之前几月(负数)或者之后几月(正数),当month=0时,则得到指定日期当月
* @param format 指定之前几天(负数)或者之后几天(正数)
* @return 返回字符串格式日期
*/
public String getLastDay(Date date,int month,String format){
calendar=Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.MONTH, month+1);
calendar.set(Calendar.DAY_OF_MONTH, 1);
calendar.add(Calendar.DAY_OF_MONTH,-1); Date getDate=calendar.getTime();
return date(getDate, format);
} /**
* 获取指定时间前或后几天日期
* @param date 指定日期
* @param day 指定日期之前几天(负数)或者之后几天(正数)
* @param format 日期转换成字符串的格式,例如:"yyyy-MM-dd HH:mm:ss"
* @return time 返回字符串格式日期
*/
public String getBeforeOrAfterDate(Date date,int day,String format){
calendar=Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DAY_OF_MONTH, day); Date getDate=calendar.getTime();
sdf=new SimpleDateFormat(format);
String time=sdf.format(getDate); return time;
} /**
* 获取指定时间前或后几天日期
* @param date 指定日期
* @param day 指定之前几天(负数)或者之后几天(正数)
* @return 返回date类型日期
*/
public int getBeforeOrAfterDay(Date date,int day){
calendar=Calendar.getInstance();
calendar.setTime(date); return calendar.get(Calendar.DATE)+day;
} }

java_method_日期方法的更多相关文章

  1. 【js实例】Array类型的9个数组方法,Date类型的41个日期方法,Function类型

    前文提要:[js实例]js中的5种基本数据类型和9种操作符 Array类型的9个数组方法 Array中有9个数组方法: 1.检测数组 2.转换方法 3.栈方法 4.队列方法 5.冲排序方法6.操作方法 ...

  2. 高速改动android系统默认日期方法

    高速改动android系统默认日期方法 在android系统的设备上,都有一个默认的開始日期,看过非常多设备,有些设备在没有联网的时候没有同步到系统时间的时候,竟然默认的还是1970年的日期.也见过有 ...

  3. [Java] SoapUI使用Java获取各时间日期方法

    import java.util.*; import java.text.SimpleDateFormat; // current date String dateNew = today() // t ...

  4. java_method_下拉框成json

    List<String[]> proList=service.getUserList(); int nTotal=0; String proJson="["; proJ ...

  5. java_method_下载导入模版

    //调用方法 upDown.download(request, response, request.getRealPath("")+"/output/BlackNumbe ...

  6. java_method_数据去重

    /** * 判断list本身是否有重复数据和标题 * * @param list * @return newList 返回没有重复数据的list */ public List<String[]& ...

  7. mysql 获得当前月1号的日期 和 0点日期方法

    day)) 当月0点时间:2015-12-01 00:00:00 day)) 当月1号时间:2015-12-01 10:45:22 day) 2015-12-01 <!-- 查询上月债权额度 - ...

  8. Long和Date数据类型之间相互转换代码 - 调整时间推前往后,截取long型日期方法。

    SimpleDateFormat DATETIME_SEC_STR = new SimpleDateFormat("yyyyMMddHHmmss"); SimpleDateForm ...

  9. Linux获取时间日期方法

    linux中用shell获取昨天.明天或多天前的日期:在Linux中对man date -d 参数说的比较模糊,以下举例进一步说明:# -d, --date=STRING display time d ...

随机推荐

  1. javaScript中with的用法

    1 JavaScript中的with语句的作用是为逐级的对象访问提供命名空间式的速写方式, 也就是在指定的代码区域, 直接通过节点名称调用对象 初次接触到with用法,是这样一段代码: 1 2 3 4 ...

  2. 对typesafe enum模式的改进

    按照一些资料上讲,其实enum也就是在编译器层面实现用类来包装枚举(typesafe enum 模式)的思想.以保证类型安全.自己用类来写枚举其实效果也还是不错的,只是代码略显啰嗦. 例子代码 pub ...

  3. 用Python实现的一个简单的随机生成器

    朋友在ctr工作,苦于各种排期神马的,让我帮他整一个xxxx管理系统 里面在用户管理上面需要有一个批量从文件导入的功能,我肯定不能用汉字来作唯一性约束,于是想到了随机生成. 我首先想到的是直接用ite ...

  4. Servlet的一些API使用介绍

    final String rootPath = getServletConfig().getServletContext().getRealPath("/");  获取项目运行的根 ...

  5. 什么是xsi:type ???

    http://www.w3.org/2001/XMLSchema-instance http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.ecli ...

  6. Spring 定时任务 quartz的配置

    环境:我用的是spring3.2,其中引入了quartz-1.5.2.jar 先写一个任务类: package com.hlcg.common.task; public class TestJob { ...

  7. Android LogCat 日志记录

    日志级别列表如下(从低到高): V — Verbose (lowest priority) D — Debug I — Info W — Warning E — Error F — Fatal S — ...

  8. 【网络流24题】 No.6 最长不减子序列问题 (最大流)[模型:最多不相交路径]

    [题意] 给定正整数序列x1 ,x2 , x3... ( 1)计算其最长不减子序列的长度 s.( 2)计算从给定的序列中最多可取出多少个长度为 s 的不减子序列.( 3) 如果允许在取出的序列中多次使 ...

  9. [转贴]Eclipse IDE for c++配置

    从工作到现在已经有快一年多没用过C/C++了,现在想重新捡起来,但是以前一直是在windows下面进行开发,使用最多的是Eclipse和Myeclipse,因为这些都是开源的软件,并不收费,所以现在也 ...

  10. HTML图片热点、网页划区、拼接、表单

    一.图片热点: 规划出图片上的一个区域,可以做出超链接,直接点击图片区域就可以完成跳转的效果. 示例: 二.网页划区: 在一个网页里,规划出一个区域用来展示另一个网页的内容. 示例: 三.网页的拼接: ...