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

public class DateUtil {

/*** 默认日期格式*/
public static String DEFAULT_FORMAT = "yyyy-MM-dd";
private static final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
private static final SimpleDateFormat formatMs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.sss");/*** 格式化日期* @param date 日期对象* @return String 日期字符串*/
public static String formatDate(Date date){SimpleDateFormat f = new SimpleDateFormat(DEFAULT_FORMAT);String sDate = f.format(date);return sDate;
}
/*** 格式化日期* @param str 日期对象* @return String 日期字符串*/
public static Date formatDate(String str){Date date = null;try{SimpleDateFormat f = new SimpleDateFormat(DEFAULT_FORMAT);date = f.parse(str);}catch (Exception e){e.printStackTrace();}return date;
}/*** 获取某年第一天日期* @param date 账期* @return Date*/
public static String getYearFirst(String date){Calendar calendar = Calendar.getInstance();calendar.clear();calendar.set(Calendar.YEAR, Integer.parseInt(date.substring(0, 4)));Date currYearFirst = calendar.getTime();return formatDate(currYearFirst);
}/*** 获取上年第一天日期* @param date 账期* @return Date*/
public static String getLastYearFirst(String date){Calendar calendar = Calendar.getInstance();calendar.clear();calendar.set(Calendar.YEAR, Integer.parseInt(date.substring(0, 4)));calendar.add(Calendar.YEAR, -1);Date currYearFirst = calendar.getTime();return formatDate(currYearFirst);
}/*** 获取某日的前一天日期* @return Date*/
public Date getDaysBefore(String dateString, int days) throws ParseException {DateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");Date inputDate = dateFormat.parse(dateString);Calendar cal = Calendar.getInstance();cal.setTime(inputDate);int dayOfYear = cal.get(Calendar.DAY_OF_YEAR);cal.set(Calendar.DAY_OF_YEAR, dayOfYear - days);return cal.getTime();
}/*** 获取某月上一个月份* @return Date*/
public Date getMonthsBefore(String dateString, int months) throws ParseException {DateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");Date inputDate = dateFormat.parse(dateString);Calendar cal = Calendar.getInstance();cal.setTime(inputDate);int monthOfYear = cal.get(Calendar.MONTH);cal.set(Calendar.MONTH, monthOfYear - months);return cal.getTime();
}/*** 获取某月第一天日期* @return Date*/
public Date getFisrtDayOfMonth(String dateString) throws ParseException {DateFormat dateFormat = new SimpleDateFormat("yyyyMM");Date inputDate = dateFormat.parse(dateString);Calendar cal = Calendar.getInstance();cal.setTime(inputDate);int firstDay = cal.getActualMinimum(Calendar.DAY_OF_MONTH);cal.set(Calendar.DAY_OF_MONTH, firstDay);return cal.getTime();
}/*** 获取某月最后一天日期* @return Date*/
public Date getLastDayOfMonth(String dateString) throws ParseException {DateFormat dateFormat = new SimpleDateFormat("yyyyMM");Date inputDate = dateFormat.parse(dateString);Calendar cal = Calendar.getInstance();cal.setTime(inputDate);int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);cal.set(Calendar.DAY_OF_MONTH, lastDay);return cal.getTime();
}/*** 获取最后一个月的第一天日期* @return Date*/
public static String getLastMonthFirstDay() {Calendar cal_1 = Calendar.getInstance();cal_1.add(Calendar.MONTH, -1);cal_1.set(Calendar.DAY_OF_MONTH, 1);String firstDay = format.format(cal_1.getTime());System.out.println("-----1------firstDay:" + firstDay);return firstDay;
}/*** 获取最后一个月最后一天日期* @return Date*/
public static String getLastMonthlastDay() {Calendar cale = Calendar.getInstance();cale.set(Calendar.DAY_OF_MONTH, 0);String lastDay = format.format(cale.getTime());System.out.println("-----2------lastDay:" + lastDay);return lastDay;
}/*** 获取当前月第一天日期* @return Date*/
public static String getCurrentMonthFirstDay() {Calendar c = Calendar.getInstance();c.add(Calendar.MONTH, 0);c.set(Calendar.DAY_OF_MONTH, 1);String first = format.format(c.getTime());System.out.println("===============first:" + first);return first;
}/*** 获取当前月最后一天日期* @return Date*/
public static String getCurrentMonthlastDay() {Calendar ca = Calendar.getInstance();ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH));String last = format.format(ca.getTime());System.out.println("===============last:" + last);return last;
}
/*** 获取当前年份第一天日期* @return Date*/
public static Date getCurrYearFirst() {Calendar currCal = Calendar.getInstance();int currentYear = currCal.get(Calendar.YEAR);return getYearFirst(currentYear);
}
/*** 根据传入的参数获取该年的第一天* @return Date*/
public static Date getCurrYearFirst(String dateString) throws ParseException {DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");Date inputDate = dateFormat.parse(dateString);Calendar cal = Calendar.getInstance();cal.setTime(inputDate);int currentYear = cal.get(Calendar.YEAR);return getYearFirst(currentYear);
}
/*** 根据传入的参数获取该年月* @return Date*/
public static String getMonth(String dateString) throws ParseException {DateFormat dateFormat = new SimpleDateFormat("MM");Date inputDate = dateFormat.parse(dateString);Calendar cal = Calendar.getInstance();cal.setTime(inputDate);return formatDate(cal.getTime());
}
/*** 获取当前年份最后一天* @return Date*/
public static Date getCurrYearLast() {Calendar currCal = Calendar.getInstance();int currentYear = currCal.get(Calendar.YEAR);return getYearLast(currentYear);
}
/*** 根据传入的参数获取该年* @return Date*/
public static Date getYearFirst(int year) {Calendar calendar = Calendar.getInstance();calendar.clear();calendar.set(Calendar.YEAR, year);Date currYearFirst = calendar.getTime();return currYearFirst;
}/*** 根据传入的参数获取该年* @return Date*/
public static Date getYearLast(int year) {Calendar calendar = Calendar.getInstance();calendar.clear();calendar.set(Calendar.YEAR, year);calendar.roll(Calendar.DAY_OF_YEAR, -1);Date currYearLast = calendar.getTime();return currYearLast;
}
/*** 根据传入的参数获取该年月* @return Date*/
public static String getCurrentYear(){SimpleDateFormat sdf = new SimpleDateFormat("yyyy");Date date = new Date();return sdf.format(date);}
/*** 根据传入的参数获取该年月* @return Date*/
public static String getLastYear() {Calendar date = Calendar.getInstance();date.add(Calendar.YEAR, -1);String year = String.valueOf(date.get(Calendar.YEAR));return year;
}/*** 现在时间+6个月与next_time比较* @return*/
public static String getStaleDated(){SimpleDateFormat sdfTimeStamp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.sss");Date date= new Date();Calendar cd = Calendar.getInstance();cd.setTime(date);cd.add(Calendar.MONTH, 6);date=cd.getTime();String stale_dated = sdfTimeStamp.format(date);return stale_dated;
}/*** 获取当前时间* @return*/
public static String currentDatetime(){SimpleDateFormat tempDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String datetime = tempDate.format(new java.util.Date());return datetime;
}/*** 获取当前时间** @return*/
public static String getYyMmtime() {SimpleDateFormat tempDate = new SimpleDateFormat("yyyy-MM");String datetime = tempDate.format(new java.util.Date());return datetime;
}/*** 日期计算* @param date* @param type* @param number* @return*/
public static String calculateDate(String date,String type,int number){try{

// SimpleDateFormat sdfTimeStamp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.sss");

        SimpleDateFormat sdfTimeStamp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//String create_time = sdfTimeStamp.format(new Date());Date tmpDate = sdfTimeStamp.parse(date);Calendar cd = Calendar.getInstance();cd.setTime(tmpDate);if(type.equals("m")){cd.add(Calendar.MONTH, number);}else if (type.equals("d")){cd.add(Calendar.DAY_OF_MONTH, number);}else {return "type is unknown";}tmpDate = cd.getTime();String dateRuslt = sdfTimeStamp.format(tmpDate);return dateRuslt;}catch(Exception ex){return "calculate failed";}}public static Date getDateByStr(String string){//String string = "2016-10-24 21:59:06";SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date date =null;try{date = sdf.parse(string);System.out.println(sdf.parse(string));}catch (Exception e){e.printStackTrace();}return date;
}public static String getStrByDate(Date date) {//String string = "2016-10-24 21:59:06";SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String dateTime = null;try {dateTime = sdf.format(date);} catch (Exception e) {e.printStackTrace();}return dateTime;
}
public static String getUpdateTime(){//当前时间重写更新时间SimpleDateFormat sdfTimeStamp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.sss");String update_time = sdfTimeStamp.format(new Date());return update_time;
}
public static void main(String[] args) throws ParseException {DateUtil dateTest = new DateUtil();// DateFormat df = new SimpleDateFormat("yyyyMMdd");// Date before7Day = dateTest.getDaysBefore("20140301", 7);// System.out.println(df.format(before7Day));// Date testFirstDay = dateTest.getLastDayOfMonth("201407");// System.out.println(df.format(testFirstDay));// Date testBeforeMonth = dateTest.getMonthsBefore("20140712", 12);// System.out.println(df.format(testBeforeMonth));// DateFormat df2 = new SimpleDateFormat("yyyyMM");// Date getFisrtDayOfMonth = dateTest.getFisrtDayOfMonth("201407");// System.out.println(df2.format(getFisrtDayOfMonth));System.out.println(getStaleDated());

// System.out.println(formatDate(getCurrYearLast()));
// String stObj="2016-3-21";
// String[] timeDay = stObj.split("-");
// System.out.println(timeDay[1]);

}

}

JAVA时间格式处理工具类相关推荐

  1. java 日期处理 口诀_java时间处理常用方法工具类

    java时间处理常用方法工具类 . import java.io.PrintStream; 2 import java.sql.Time; 3 import java.sql.Timestamp; 4 ...

  2. java hh24miss_时间日期转换工具类,获取当前时间YYYYMMDD24HHMISS、YYYYMMDDHHMISS

    packagecom.ztesoft.iotcmp.util;importcom.ztesoft.zsmart.core.log.ZSmartLogger;importjava.sql.Timesta ...

  3. Java时间戳与日期格式转换工具类

    Java时间戳与日期格式转换工具类 在做web开发时,有时候需要用到时间戳,在前台进行日期转换,从数据库中取出来是日期格式的,这里记录下使用的转换工具类(这些都是静态方法,通过类名.方法的形式即可调用 ...

  4. java redis remove_最全的Java操作Redis的工具类

    RedisUtil 当前版本:1.1 增加更全的方法,对以前的部分方法进行了规范命名,请放心替换成新版本. 介绍 最全的Java操作Redis的工具类,使用StringRedisTemplate实现, ...

  5. android 日期时间类,Android 日期时间等转换工具类

    package com.easyder.util; import java.text.SimpleDateFormat; import java.util.Date; /** * 日期时间等转换工具类 ...

  6. java Excel导入导出工具类 及使用demo

    java Excel导入导出工具类 及使用demo 前言:相信进来的都是想尽快解决问题的,话不多说,按照以下步骤来,可以操作导出excel到本地,导入同理,自行学习.步骤一:直接复制以下excel工具 ...

  7. java中常用的工具类

    1. 常用零散工具类 1.1[DateUtil.java]日期处理的工具类 /*** 时间日期处理工具* String -> Date* Date -> String* 以及生成含有日期的 ...

  8. java项目常用的工具类

    前言 在开发过程中,我们会遇到很多繁琐或者棘手的问题,但是,这些问题往往会存在一些便捷的工具类,来简化我们的开发,下面是我工作中经常使用到的工具类 常用工具类 日期工具类 import java.te ...

  9. java联调生成测试数据工具类

    java联调生成测试数据工具类 一.背景 二.代码 一.背景 在日常的联调中,我们经常需要准备一定数量的测试数据,用来配合前端测试.当然对于简单的数据类型完全可以通过 JDK 自带的 Random 类 ...

  10. java图形验证码生成工具类

    转载自   java图形验证码生成工具类 生成验证码效果       ValidateCode.java 验证码生成类 package cn.dsna.util.images; import java ...

最新文章

  1. proftpd的搭建以及相关配置
  2. [SinGuLaRiTy] 贪心题目复习
  3. MySQL读写分离中间件解决
  4. SAP获利能力报表常用Tcode的区别
  5. 快速入门SSM整合配置建立第一个SSM项目模板
  6. 安徽省计算机二级考试vfp试题,安徽省计算机二级VFP考试理论模拟试题2(附答案)...
  7. CSS3的弹性盒子flex详解(1)
  8. POJ2503 Babelfish(二分)
  9. postgres+socket.io+nodejs实时地图应用实践
  10. 远程管理 Mac OSX 设备
  11. 并行算法设计与性能优化总结
  12. Delphi 中的 procedure of object
  13. uniapp 打开第三方APP
  14. 基于docker1.7.03.1单机上部署hadoop2.7.3集群
  15. html 一键排版,用一键排版 排版好轻松
  16. 239期夏天计算机开机号,福彩3D16239期便民工作室提供中国福彩中心开机号239期开机号...
  17. C# 如何在Word文档中插入艺术字
  18. python 页眉页脚_python自动化办公:玩转word之页眉页脚秘笈-阿里云开发者社区
  19. 无法登陆github官网的问题(能ping通但打不开网页)
  20. 关于defer 的用法

热门文章

  1. mybatis的二表联合查询
  2. 手淘移动适配方案flexible.js兼容bug处理
  3. Win7 maven安装及配置
  4. Django框架(二)---- 常用命令
  5. 基于STEP7 V5.xWinCC V7.x快速开发项目
  6. Google Maps API 进级: GPolygon对象2
  7. Jasmine入门(上)
  8. 11.2.0.3.0 PATCH SET FOR ORACLE DATABASE SERVER for windows (32bit)
  9. 【Zend Studio】10.6.0版本设置默认编码为UTF-8
  10. 如何自定义IHttpModule