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. SQL Server 扩展事件(Extented Events)从入门到进阶(1)——从SQL Trace到Extented Events

    由于工作需要,决定深入研究SQL Server的扩展事件(Extended Events/xEvents),经过资料搜索,发现国外大牛的系列文章,作为“学习”阶段,我先翻译这系列文章,后续在工作中的心 ...

  2. JS进制转换,浮点数相加,数字判断

    document.write("整数转换函数:parseInt(数据,底数)<br>"); document.write("10101=>" ...

  3. php返回json数据函数实例

    本文实例讲述了php返回json数据函数的用法,分享给大家供大家参考.具体方法如下: json_encode()函数用法: ? 1 echo json_encode(array('a'=>'bb ...

  4. 大量字段表单在PHP便捷处理分享

    关于程序开发中的表单批量提交策略很多时候一个表单太多的字段,如何能够高效获取表单字段,也为如何提神开发的效率和统一性? 比如一个系统的某个有26个字段,那么我用表单的名称用26个a到z的字母, 你是选 ...

  5. php精粹-编写高效的php代码 --- php设计模式

    1.选择一个最合适的设计模式 没有任何事物是完美的,也没有人说过设计模式一个严格的放之四海而皆准的解决方法.因此你可以改变这些模式,使它们更适合手头的工作.对于某些设计模式而言,他们就是所属程序固有的 ...

  6. pyramid的第一个项目

    1,安装pyramid --在次之前最好先安装python virtualenv --python virtualenv ---激活方式pyenv activate pip install pyram ...

  7. 分页加查询的sql语句

    "SELECT TOP(@pagesize) * FROM T_News WHERE(NewsTitle LIKE @newskey OR NewsContent LIKE @newskey ...

  8. Android入门教程之我见

    真正的从安卓入门学习到实际工作也差不多一年时间了,也做了几个项目.在这期间经历了一开始学习Android的基本知识后仍旧无从下手,不知道如何开始开发一个app,到现在也开始学会注意Android架构的 ...

  9. Linq学习之旅——LINQ查询表达式

    1. 概述 2. from子句 3. where子句 4. select子句 5. group子句 6. into子句 7. 排序子句 8. let子句 9. join子句 10. 小结 1. 概述 ...

  10. 网络流系列算法总结(bzoj 3438 1061)

    网络流嘛,怎么看都是一堆逗逼题嘛,反正遇到还是都做不起嘛.... 网络流的模板非常简单,难点都在于建图,网络流的建图解决问题范围之广,下至A+B Problem,上至单纯形,线性规划.所以如果对于网络 ...