亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

時間處理函數工具分享(時間戳計算)

2019-11-26 15:43:24
字體:
來源:轉載
供稿:網友

復制代碼 代碼如下:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.TimeZone;

/**
 * 時間處理函數
 *
 * @20080509 15:50
 */
public class DateUtil {

 private static final String DEFAULT_PATTERN = "yyyy-MM-dd HH:mm:ss";

 public static final String TIME_YEAR = "yyyy";

 public static final String TIME_MONEN = "MM";

 public static final String TIME_DAY = "dd";

 public static String getDate(String interval, Date starttime, String pattern) {
  Calendar temp = Calendar.getInstance(TimeZone.getDefault());
  temp.setTime(starttime);
  temp.add(temp.MONTH, Integer.parseInt(interval));
  SimpleDateFormat sdf = new SimpleDateFormat(pattern);
  return sdf.format(temp.getTime());
 }

 /**
  * 將字符串類型轉換為時間類型
  *
  * @return
  */
 public static Date str2Date(String str) {
  Date d = null;
  SimpleDateFormat sdf = new SimpleDateFormat(DEFAULT_PATTERN);
  try {
   d = sdf.parse(str);
  } catch (Exception e) {
   e.printStackTrace();
  }
  return d;
 }

 public static Date str2Date(String str, String pattern) {
  Date d = null;
  SimpleDateFormat sdf = new SimpleDateFormat(pattern);
  try {
   d = sdf.parse(str);
  } catch (Exception e) {
   e.printStackTrace();
  }
  return d;
 }

 /**
  * 將時間格式化
  *
  * @return
  */
 public static Date DatePattern(Date date) {
  SimpleDateFormat sdf = new SimpleDateFormat(DEFAULT_PATTERN);
  try {
   String dd = sdf.format(date);
   date = str2Date(dd);
  } catch (Exception e) {
   e.printStackTrace();
  }
  return date;
 }

 /**
  * 將時間格式化
  */
 public static Date DatePattern(Date date, String pattern) {
  SimpleDateFormat sdf = new SimpleDateFormat(pattern);
  try {
   String dd = sdf.format(date);
   date = str2Date(dd, pattern);
  } catch (Exception e) {
   e.printStackTrace();
  }
  return date;
 }

 public static String date2Str(Date date) {
  SimpleDateFormat sdf = new SimpleDateFormat(DEFAULT_PATTERN);
  return sdf.format(date);
 }

 public static String date2Str(Date date, String format) {
  SimpleDateFormat sdf = new SimpleDateFormat(format);
  return sdf.format(date);
 }

 /**
  * 獲取昨天
  *
  * @param date
  * @return
  * @throws Exception
  */
 public static Date getLastDate(Date date) {
  Calendar calendar = Calendar.getInstance(TimeZone.getDefault());
  calendar.setTime(date);

  calendar.add(calendar.DATE, -1);

  return str2Date(date2Str(calendar.getTime()));
 }
 /**
  * 獲取前幾天
  * @param date
  * @return
  */
 public static Date getBeforeDate(Date date,int dates) {
  Calendar calendar = Calendar.getInstance(TimeZone.getDefault());
  calendar.setTime(date);

  calendar.add(calendar.DATE, -dates);

  return str2Date(date2Str(calendar.getTime()));
 }

 /**
  * 獲取上周第一天(周一)
  *
  * @param date
  * @return
  * @throws Exception
  */
 public static Date getLastWeekStart(Date date) {
  Calendar calendar = Calendar.getInstance(TimeZone.getDefault());
  calendar.setTime(date);
  int i = calendar.get(calendar.DAY_OF_WEEK) - 1;
  int startnum = 0;
  if (i == 0) {
   startnum = 7 + 6;
  } else {
   startnum = 7 + i - 1;
  }
  calendar.add(calendar.DATE, -startnum);

  return str2Date(date2Str(calendar.getTime()));
 }

 /**
  * 獲取上周最后一天(周末)
  *
  * @param date
  * @return
  * @throws Exception
  */
 public static Date getLastWeekEnd(Date date) {
  Calendar calendar = Calendar.getInstance(TimeZone.getDefault());
  calendar.setTime(date);
  int i = calendar.get(calendar.DAY_OF_WEEK) - 1;
  int endnum = 0;
  if (i == 0) {
   endnum = 7;
  } else {
   endnum = i;
  }
  calendar.add(calendar.DATE, -(endnum - 1));

  return str2Date(date2Str(calendar.getTime()));
 }

 /**
  * 根據年和月得到天數
  * @param num 月
  * @param year 年
  * @return
  */
 public static int getday(int num,int year){
  if(num==1 || num==3 || num==5 || num==7 || num==8 || num==10 || num==12){
   return 31;
  }else if(num==2){
   //判斷是否為閏年
   if(year%400==0 || (year%4==0 && year%100!=0)){
    return 29;
   }else{
    return 28;
   }

  }else{
   return 30;
  }
 }
 /*
  * 計算當前日期距離下個月還有多少天
  */
 public static int getdaymis(Date time){
  int year = Integer.parseInt(
    new SimpleDateFormat(TIME_YEAR).format(time));//年

  int mm = Integer.parseInt(
    new SimpleDateFormat(TIME_MONEN).format(time));//月

  int dd = Integer.parseInt(
    new SimpleDateFormat(TIME_DAY).format(time));//日

  
  //獲取當前年月的總天數
  int sdd = getday(mm,year);

  return sdd-dd;

  
 }
 /**
  * 日期轉秒數
  * @param dateString
  * @return
  */
 public static long getTime(String dateString) {
     long time = 0;
     try {
      Date ret = null;
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      ret = sdf.parse(dateString);
      time = ret.getTime()/1000;
     } catch (Exception e) {

     }
     return time;
    }

 
 /**
  * 精確計算時間差,精確到日
  * @param fistill 起始日期
  * @param nowtime 結束日期
  * @param type type為1返回年月日(如:2年3個月零5天) 否則返回總的天數
  * @return
  */
 public static String patienage(Date fistill,Date nowtime,Integer type){

  int fyear = Integer.parseInt(
    new SimpleDateFormat(TIME_YEAR).format(fistill));//起始年

  int fmm = Integer.parseInt(
    new SimpleDateFormat(TIME_MONEN).format(fistill));//起始月

  int fdd = Integer.parseInt(
    new SimpleDateFormat(TIME_DAY).format(fistill));//起始日

  
  int nyear = Integer.parseInt(
    new SimpleDateFormat(TIME_YEAR).format(nowtime));//結束年

  int nmm = Integer.parseInt(
    new SimpleDateFormat(TIME_MONEN).format(nowtime));//結束月

  int ndd = Integer.parseInt(
    new SimpleDateFormat(TIME_DAY).format(nowtime));//結束日

  int cyear = nyear - fyear;
  int cmm = nmm - fmm;
  int cdd = ndd - fdd;

  
  int zyear = 0;
  int zmm = 0;
  int zdd = 0;

  int countddd = 0;  //年月日累計天數

  if(cdd<0){
   if(cmm<0){
    zyear = cyear - 1;
    zmm = (cmm + 12)-1;
    int dd = getday(zmm,nyear-1);
    zdd = dd + cdd;

    
    countddd = zyear*365+zmm*30+zdd;

   }else if(cmm==0){
    zyear = cyear - 1;
    zmm = 12-1;
    int dd = getday(zmm,nyear-1);
    zdd = dd + cdd;

    countddd = zyear*365+zmm*30+zdd;

   }else{
    zyear = cyear;
    zmm = cmm - 1;
    int dd = getday(zmm,nyear);
    zdd = dd + cdd;

    countddd = zyear*365+zmm*30+zdd;

   }
  }else if(cdd==0){
   if(cmm<0){
    zyear = cyear - 1;
    zmm = cmm + 12;
    zdd = 0;

    countddd = zyear*365+zmm*30;

   }else if(cmm==0){
    zyear = cyear;
    zmm = 0;
    zdd = 0;

    countddd = zyear*365+zmm*30;

   }else{
    zyear = cyear;
    zmm = cmm;
    zdd = 0;

    countddd = zyear*365+zmm*30;
   }
  }else{
   if(cmm<0){
    zyear = cyear - 1;
    zmm = cmm + 12;
    zdd = cdd;

    countddd = zyear*365+zmm*30+zdd;
   }else if(cmm==0){
    zyear = cyear;
    zmm = 0;
    zdd = cdd;

    countddd = zyear*365+zmm*30+zdd;
   }else{
    zyear = cyear;
    zmm = cmm;
    zdd = cdd;

    countddd = zyear*365+zmm*30+zdd;
   }
  }
  String ptime = null;

  if(zdd!=0){
   if(zmm!=0){
    if(zyear!=0){
     ptime = zyear+"年"+zmm+"個月"+"零"+zdd+"天";
    }else{
     ptime = zmm+"個月"+"零"+zdd+"天";
    }
   }else{
    if(zyear!=0){
     ptime = zyear+"年"+"零"+zdd+"天";
    }else{
     ptime = zdd+"天";
    }
   }
  }else{
   if(zmm!=0){
    if(zyear!=0){
     ptime = zyear+"年"+zmm+"個月";
    }else{
     ptime = zmm+"個月";
    }
   }else{
    if(zyear!=0){
     ptime = zyear+"年";
    }else{
     ptime = null;
    }
   }
  }
  if(type==1){
   return ptime;   //返回年月日(如:2年3個月零5天)
  }else{
   return String.valueOf(countddd);  //返回總天數
  }

  
 }
 /**
  * 得到月數
  * @param year 年數差
  * @param month 月數差
  * @return
  */
 public static int getCmm(Integer year,Integer month){
  int zmm = 0;
  if(month < 0){
   zmm = (month + 12)+(year-1)*12;
  }else if(month == 0){
   zmm = year*12;
  }else{
   zmm = year*12+month;
  }
  return zmm;
 }

 

 /**
  * 改更現在時間
  */
 public static Date changeDate(String type, int value) {
  Calendar calendar = Calendar.getInstance(TimeZone.getDefault());
  if (type.equals("month")) {
   calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) + value);
  } else if (type.equals("date")) {
   calendar.set(Calendar.DATE, calendar.get(Calendar.DATE) + value);
  }
  return calendar.getTime();
 }

 /**
  * 更改時間
  */
 public static Date changeDate(Date date, String type, int value) {
  if (date != null) {
   // Calendar calendar = Calendar.getInstance(TimeZone.getDefault());
   Calendar calendar = new GregorianCalendar();
   calendar.setTime(date);
   // Calendar calendar = Calendar.
   if (type.equals("month")) {
    calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) + value);
   } else if (type.equals("date")) {
    calendar.set(Calendar.DATE, calendar.get(Calendar.DATE) + value);
   } else if (type.endsWith("year")) {
    calendar.set(Calendar.YEAR, calendar.get(Calendar.YEAR) + value);
   }
   return calendar.getTime();
  }
  return null;
 }

 /**
  * haoxw 比較時間是否在這兩個時間點之間
  *
  * @param time1
  * @param time2
  * @return
  */
 public static boolean checkTime(String time1, String time2) {
  Calendar calendar = Calendar.getInstance();
  Date date1 = calendar.getTime();
  Date date11 = DateUtil.str2Date(DateUtil.date2Str(date1, "yyyy-MM-dd") + " " + time1);// 起始時間

  Calendar c = Calendar.getInstance();
  c.add(Calendar.DATE, 1);
  Date date2 = c.getTime();
  Date date22 = DateUtil.str2Date(DateUtil.date2Str(date2, "yyyy-MM-dd") + " " + time2);// 終止時間

  Calendar scalendar = Calendar.getInstance();
  scalendar.setTime(date11);// 起始時間

  Calendar ecalendar = Calendar.getInstance();
  ecalendar.setTime(date22);// 終止時間

  Calendar calendarnow = Calendar.getInstance();

  if (calendarnow.after(scalendar) && calendarnow.before(ecalendar)) {
   return true;
  } else {
   return false;
  }

 }

 /**
  * haoxw 比較時間是否在這兩個時間點之間
  *
  * @param date11
  * @param date22
  * @return
  */
 public static boolean checkTime(Date date11, Date date22) {

  

  Calendar scalendar = Calendar.getInstance();
  scalendar.setTime(date11);// 起始時間

  Calendar ecalendar = Calendar.getInstance();
  ecalendar.setTime(date22);// 終止時間

  Calendar calendarnow = Calendar.getInstance();

  if (calendarnow.after(scalendar) && calendarnow.before(ecalendar)) {
   return true;
  } else {
   return false;
  }

 }


 public static boolean checkDate(String date1, String date2) {

  Date date11 = DateUtil.str2Date(date1, "yyyy-MM-dd HH:mm:ss");// 起始時間

  Date date22 = DateUtil.str2Date(date2, "yyyy-MM-dd HH:mm:ss");// 終止時間

  Calendar scalendar = Calendar.getInstance();
  scalendar.setTime(date11);// 起始時間

  Calendar ecalendar = Calendar.getInstance();
  ecalendar.setTime(date22);// 終止時間

  Calendar calendarnow = Calendar.getInstance();

  System.out.println(date11.toString());
  System.out.println(date22.toString());
  System.out.println(scalendar.toString());
  System.out.println(ecalendar.toString());
  System.out.println(calendarnow.toString());

  if (calendarnow.after(scalendar) && calendarnow.before(ecalendar)) {
   return true;
  } else {
   return false;
  }
 }

 /**
  * 獲取interval天之前的日期
  *
  * @param interval
  * @param starttime
  * @param pattern
  * @return
  */
 public static Date getIntervalDate(String interval, Date starttime, String pattern) {
  Calendar temp = Calendar.getInstance();
  temp.setTime(starttime);
  temp.add(temp.DATE, Integer.parseInt(interval));
  SimpleDateFormat sdf = new SimpleDateFormat(pattern);
  String shijian = sdf.format(temp.getTime());
  return str2Date(shijian);
 }

 public static Date formatDate(Date date){
  SimpleDateFormat bartDateFormat =
  new SimpleDateFormat("yyyy-MM-dd");   
  System.out.println(bartDateFormat.format(date));
  SimpleDateFormat bartDateFormat1 =new SimpleDateFormat("yyyy-MM-dd");    
  try {
   Date date1 = bartDateFormat1.parse(bartDateFormat.format(date));
  } catch (ParseException e) {    
   e.printStackTrace();
  }
  System.out.println(date.getTime());
  return date;

 }

 public static void main(String arf[]) {

  /*String time1 = "2009-05-07 19:20:00";
  String time2 = "2009-05-08 19:30:00";

  DateUtil d = new DateUtil();
  System.out.println(d.checkDate(time1, time2));
  System.out.println(d.date2Str(new Date()));*/

  //System.out.println(d.getIntervalDate("-3", new Date(), DEFAULT_PATTERN));
  Calendar calendar = Calendar.getInstance(TimeZone.getDefault());
  System.out.println(calendar.toString());
  System.out.println(DateUtil.str2Date("20090731","yyyyMMdd"));

  System.out.println(DateUtil.getBeforeDate(new Date(),2 ));
  System.out.println(DateUtil.DatePattern(new Date()));

     SimpleDateFormat bartDateFormat =
  new SimpleDateFormat("yyyy-MM-dd");
  Date date = new Date();
  System.out.println("date;"+bartDateFormat.format(date));
  SimpleDateFormat bartDateFormat1 =new SimpleDateFormat("yyyy-MM-dd");    
  try {
   Date date1 = bartDateFormat1.parse(bartDateFormat.format(date));
   System.out.println("日期:"+date1);
  } catch (ParseException e) {    
   e.printStackTrace();
  }

 }
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧美激情在线视频| 日韩在线视频线视频免费网站| 国产精品爱久久久久久久| 久久久久免费视频| 欧美精品免费在线| 成人久久精品视频| 亚洲欧美日本精品| 欧美激情a∨在线视频播放| 亚洲理论片在线观看| 日本精品中文字幕| 国产成人高潮免费观看精品| 456国产精品| 亚洲乱码一区av黑人高潮| 国产成人精品久久二区二区| 久久视频国产精品免费视频在线| 国产成人精品日本亚洲专区61| 久久99国产精品久久久久久久久| 亚洲欧洲在线免费| 国内精品视频一区| 97视频国产在线| 亚洲国产精品成人精品| 久久久久久久影院| 午夜精品蜜臀一区二区三区免费| 欧美在线一级va免费观看| 日本高清+成人网在线观看| 久久在线精品视频| 日韩一区av在线| 97在线免费观看| 在线不卡国产精品| 亚洲精品99久久久久| 日韩av色综合| 国内精品400部情侣激情| 亚洲国产精品人人爽夜夜爽| 久久精品国产一区二区电影| 欧美尺度大的性做爰视频| 国产精品午夜国产小视频| 性色av一区二区三区红粉影视| 国产精品免费视频xxxx| 91午夜理伦私人影院| 欧美日韩亚洲一区二区| 久久人91精品久久久久久不卡| 超碰91人人草人人干| 亚洲美女在线看| 欧美综合国产精品久久丁香| 精品视频9999| 亚洲精品少妇网址| 欧美高清视频一区二区| 国产精品欧美一区二区三区奶水| 2019国产精品自在线拍国产不卡| 亚洲日本aⅴ片在线观看香蕉| 亚洲美女av黄| 亚洲天堂网站在线观看视频| 欧美最猛性xxxxx(亚洲精品)| 欧美裸体xxxx极品少妇| 欧美日韩国产区| 欧美激情一级二级| 97视频国产在线| 亚洲女人天堂av| 色综合91久久精品中文字幕| 国产精品激情自拍| 亚洲国产精品999| 91欧美精品成人综合在线观看| 亚洲国产精品va在线看黑人动漫| 精品视频久久久久久久| 日韩av在线电影网| 精品国模在线视频| 国产免费一区二区三区在线观看| 96sao精品视频在线观看| 成人激情综合网| 久久久成人的性感天堂| 国产日韩换脸av一区在线观看| 国产欧美在线视频| 日本一本a高清免费不卡| 久久天天躁狠狠躁夜夜av| 国产精品一久久香蕉国产线看观看| 久久视频在线免费观看| 色综合伊人色综合网| 亚洲精品欧美极品| 国产区亚洲区欧美区| 亚洲一区中文字幕在线观看| 国产美女扒开尿口久久久| 欧美成人精品一区| 国产精品久久久久久久久久久新郎| 精品偷拍各种wc美女嘘嘘| 欧美日韩福利视频| 亚洲福利在线视频| 另类少妇人与禽zozz0性伦| 欧美在线一区二区视频| 国内精品一区二区三区四区| 久久精品亚洲一区| 欧美日韩免费网站| 黑人狂躁日本妞一区二区三区| 欧美区在线播放| 韩国v欧美v日本v亚洲| 91精品视频一区| 久久夜精品香蕉| 国产精品电影观看| 国产精品视频公开费视频| 久久这里只有精品视频首页| 国产精品国产三级国产专播精品人| 韩国美女主播一区| 国内精品视频久久| 尤物tv国产一区| 欧美成人午夜激情视频| 日韩亚洲一区二区| 日韩免费av在线| 亚洲精品日韩激情在线电影| 亚洲黄色片网站| 成人444kkkk在线观看| 91久久久久久久| 日本一区二区三区四区视频| 久久视频在线观看免费| 川上优av一区二区线观看| 欧美影院久久久| 国产亚洲欧美另类中文| 成人免费福利在线| 亚洲精选中文字幕| 一区二区三区视频免费在线观看| 国产精品欧美激情在线播放| 国产成+人+综合+亚洲欧洲| 91亚洲精品一区| 精品av在线播放| 成人综合网网址| 不卡在线观看电视剧完整版| 国产91精品不卡视频| 国产欧美日韩中文字幕在线| 亚洲国产另类 国产精品国产免费| 亚洲天堂av综合网| 亚洲天堂第一页| 青草青草久热精品视频在线网站| 国产精品免费久久久久久| 国产精品扒开腿爽爽爽视频| 亚洲国产99精品国自产| 亚洲电影av在线| 久久精品国产一区| 国产热re99久久6国产精品| 国产亚洲欧洲黄色| 亚洲女人被黑人巨大进入| 久久精品在线视频| 另类专区欧美制服同性| 搡老女人一区二区三区视频tv| 欧美一区二区影院| 欧美尺度大的性做爰视频| 色偷偷噜噜噜亚洲男人的天堂| 国产在线一区二区三区| 欧美日韩亚洲视频| 欧美日韩午夜激情| 亚洲欧洲免费视频| 91精品国产综合久久久久久蜜臀| 伊人久久五月天| 欧美一级电影久久| 国产成人精品日本亚洲| 中文字幕日韩精品有码视频| 亚洲品质视频自拍网| 91免费欧美精品| 在线播放国产一区中文字幕剧情欧美| 亚洲偷欧美偷国内偷| 97人人模人人爽人人喊中文字| 永久免费精品影视网站| 成人有码在线视频| 国产免费观看久久黄| 精品亚洲va在线va天堂资源站| 欧美日韩免费区域视频在线观看| 久久久精品国产|