123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263 |
- package com.steerinfo.ems.Utils;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- import java.util.Calendar;
- import java.util.Date;
- import java.util.List;
- public class DateUtils {
- /**
- * 日期转换为字符串 格式自定义
- *
- * @param date
- * @param timeformat
- * @return
- */
- public static String dateStr(Date date, String timeformat) {
- if (date == null) {
- return "";
- }
- String str = new SimpleDateFormat(timeformat).format(date);
- return str;
- }
- public static String dateStr(Date date) {
- if (date == null) {
- return "";
- }
- String str = new SimpleDateFormat("yyyy-mm-dd").format(date);
- return str;
- }
- /**
- * 时间戳转标准时间
- *
- * @param stap 时间戳
- * @return
- */
- public static String stampToDate(String stap){
- String time;
- try {
- if (stap == null || stap.length() == 0) {
- time = null;
- } else {
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- Date date = null;
- try {
- long lt = new Long(stap);
- date = new Date(lt);
- }
- catch(Exception e) {
- date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(stap);
- }
- time = simpleDateFormat.format(date);
- }
- } catch (Exception e) {
- time = null;
- e.printStackTrace();
- }
- return time;
- }
- /**
- * 时间序列偏移量 偏移量自定义
- *
- * @param time
- * @param offsetinfo 偏移量
- * @return
- */
- public static Date offsetDate(Date time,String offsetinfo) {
- String[] offsetinfoarray = offsetinfo.split(",");
- Calendar cal = Calendar.getInstance();
- cal.setTime(time);
- for (int i =0;i < offsetinfoarray.length;i++){
- if(offsetinfoarray[i] != null && !"".equals(offsetinfoarray[i])){
- String timegran = offsetinfoarray[i].substring(0, offsetinfoarray[i].length() - 2);
- int offset = Integer.parseInt(offsetinfoarray[i].substring(offsetinfoarray[i].length() - 2));
- switch (timegran){
- case "ss":
- cal.add(Calendar.SECOND, offset);
- break;
- case "mm":
- cal.add(Calendar.MINUTE, offset);
- break;
- case "HH":
- cal.add(Calendar.HOUR, offset);
- break;
- case "dd":
- cal.add(Calendar.DATE, offset);
- break;
- case "MM":
- cal.add(Calendar.MONTH, offset);
- break;
- case "yyyy":
- cal.add(Calendar.YEAR, offset);
- break;
- }
- }
- }
- return cal.getTime();
- }
- public static List<String> getMonitortime(String timegran, String time, String starttime) {
- List<String> list = new ArrayList<String>();
- if("YEAR".equals(timegran)){
- list.add(time);
- }
- else{
- try {
- Date d1 = new SimpleDateFormat("yyyy-MM-dd").parse(starttime);//定义开始日期
- Date d2 = new SimpleDateFormat("yyyy-MM-dd").parse((Integer.parseInt(time) + 1) + "-01-01");//定义结束日期
- Calendar dd = Calendar.getInstance();//定义日期实例
- dd.setTime(d1);//设置日期起始时间
- while(dd.getTime().before(d2)) {//判断是否到结束日期
- if ("MONTH".equals(timegran)) {
- list.add(dateStr(dd.getTime(), "yyyy-MM"));
- dd.add(Calendar.MONTH, 1);
- }
- else{
- list.add(dateStr(dd.getTime(), "yyyy-MM-dd"));
- dd.add(Calendar.DAY_OF_YEAR, 1);
- }
- }
- }
- catch (ParseException e){
- e.printStackTrace();
- }
- }
- return list;
- }
- /**
- * 自动补全日期并返回新日期 偏移量自定义
- *
- * @param time 时间
- * @param interval 偏移量
- * @return
- */
- public static String changeTime(String time,int interval){
- Calendar dd = Calendar.getInstance();
- try{
- if(time.length() == 4){
- Date d = new SimpleDateFormat("yyyy-MM-dd").parse(time+"-01-01");
- dd.setTime(d);
- dd.add(Calendar.YEAR, interval);
- }
- if(time.length() == 7){
- Date d = new SimpleDateFormat("yyyy-MM-dd").parse(time+"-01");
- dd.setTime(d);
- dd.add(Calendar.MONTH, interval);
- }
- if(time.length() == 10){
- Date d = new SimpleDateFormat("yyyy-MM-dd").parse(time);
- dd.setTime(d);
- dd.add(Calendar.DATE, interval);
- }
- }
- catch (ParseException e){
- e.printStackTrace();
- }
- return dateStr(dd.getTime(), "yyyy-MM-dd");
- }
- /**
- * 获取现在时间
- * @Param timeformat 时间格式
- * @return(String)格式自定义
- */
- public static String getCurrentTime(String timeformat){
- Date time = new Date();
- return dateStr(time, timeformat);
- }
- /**
- * 获取现在时间
- * @Param timeformat 时间格式
- * @return(Date)格式自定义
- */
- public static Date getCurrentTimetoDate(String timeformat) {
- try {
- Date date = new java.sql.Date(new Date().getTime());
- String datestr = new SimpleDateFormat("yyyy-mm-dd").format(date);
- Date time = new SimpleDateFormat(timeformat).parse(datestr);
- return time;
- }
- catch (ParseException e){
- e.printStackTrace();
- return null;
- }
- }
- /**
- * 将"yyyy-MM-dd"转换为 格式自定义
- *
- * @param date
- * @param timeformat
- * @return
- */
- public static String dateToString(String date, String timeformat) {
- String Strtime = "";
- try {
- if(date != null && !"".equals(date)) {
- Date parse = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(date + " 00:00:00");
- Strtime = new SimpleDateFormat(timeformat).format(parse);
- }
- }
- catch (ParseException e) {
- e.printStackTrace();
- }
- return Strtime;
- }
- /**
- * 判断某天是否是该月的第一天
- * @param date
- * @return
- */
- public static boolean isFirstDayOfMonth(Date date) {
- Calendar calendar = Calendar.getInstance();
- calendar.setTime(date);
- System.out.println(calendar.get(Calendar.MONTH));
- return calendar.get(Calendar.DAY_OF_MONTH) == 1;
- }
- public static String getDate(){
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
- Date dt = null;
- String reStr = null;
- try {
- dt = sdf.parse(DateUtils.dateStr(new Date(),"yyyy-MM-dd"));
- Calendar rightNow = Calendar.getInstance();
- rightNow.setTime(dt);
- rightNow.add(Calendar.DAY_OF_MONTH, -3);
- Date dt1 = rightNow.getTime();
- reStr = sdf.format(dt1);
- } catch (ParseException e) {
- e.printStackTrace();
- }
- return reStr ;
- }
- /**
- * 根据月份得到当月天数
- * @param date
- * @return
- * @throws ParseException
- */
- public static int getDaysOfMonth(String date) throws ParseException {
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
- Calendar calendar = Calendar.getInstance();
- calendar.setTime(sdf.parse(date));
- return calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
- }
- /**
- * 根据月份得到当月天数
- * @param date
- * @return
- * @throws ParseException
- */
- public static int getDaysOfMonth(Date date) throws ParseException {
- Calendar calendar = Calendar.getInstance();
- calendar.setTime(date);
- return calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
- }
- }
|