时间处理函数工具分享(时间戳计算)

复制代码 代码如下:

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();
  }

}
}

时间: 2014-01-27

java时间戳转日期格式的实现代码

如下所示: 复制代码 代码如下: String beginDate="1328007600000"; SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); String sd = sdf.format(new Date(Long.parseLong(beginDate))); System.out.println(sd);

php获取本年、本月、本周时间戳和日期格式的实例代码

时间戳格式: //获取今日开始时间戳和结束时间戳 $beginToday=mktime(0,0,0,date('m'),date('d'),date('Y')); $endToday=mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1; //获取昨日起始时间戳和结束时间戳 $beginYesterday=mktime(0,0,0,date('m'),date('d')-1,date('Y')); $endYesterday=mktime(0,0,0,d

把时间戳转换为日期格式的js代码

复制代码 代码如下: <script>     function getLocalTime(nS) {        return new Date(parseInt(nS) * 1000).toLocaleString().replace(/:\d{1,2}$/,' ');     }     alert(getLocalTime(1293072805));     </script> 结果是2010年12月23日 10:53第二种 复制代码 代码如下: <script&g

vue.js将时间戳转化为日期格式的实现代码

看看下面的代码吧,具体代码如下所示: <!-- value 格式为13位unix时间戳 --> <!-- 10位unix时间戳可通过value*1000转换为13位格式 --> export function formatDate (date, fmt) { if (/(y+)/.test(fmt)) { fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length)); } l

vue获取时间戳转换为日期格式代码实例

vue获取时间戳转换为日期格式. 方法一为转载黄轶老师的format方法:出处(黄轶老师github    https://github.com/ustbhuangyi): // date.js export function formatDate (date, fmt) { if (/(y+)/.test(fmt)) { fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length)); }

js时间戳与日期格式之间转换详解

本文实例为大家分享了Android九宫格图片展示的具体代码,供大家参考,具体内容如下 将时间戳转换为日期格式 var date = new Date(时间戳);获取一个时间对象. 下面是获取时间日期的方法 下面是获取时间日期的方法. date.getFullYear();//获取完整的年份(4位,1970) date.getMonth();//获取月份(0-11,0代表1月,用的时候记得加上1) date.getDate();//获取日(1-31) date.getTime();//获取时间(从

js时间戳与日期格式之间相互转换

本文实例为大家分享了js时间戳与日期格式之间相互转换的代码,供大家参考,具体内容如下 1. 将时间戳转换成日期格式 // 简单的一句代码 var date = new Date(时间戳); //获取一个时间对象 /** 1. 下面是获取时间日期的方法,需要什么样的格式自己拼接起来就好了 2. 更多好用的方法可以在这查到 -> http://www.w3school.com.cn/jsref/jsref_obj_date.asp */ date.getFullYear(); // 获取完整的年份(

Java正则判断日期格式是否正确的方法示例

本文实例讲述了Java正则判断日期格式是否正确的方法.分享给大家供大家参考,具体如下: 1.Java中用正则表达式判断日期格式是否正确 DateType.java: /** * @Title:DateType.java * @Package:com.you.dao * @Description: * @Author: 游海东 * @Version V1.2.3 */ package com.you.dao; import java.util.regex.Matcher; import java.

js时间戳转为日期格式的方法

什么是Unix时间戳(Unix timestamp): Unix时间戳(Unix timestamp),或称Unix时间(Unix time).POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数.Unix时间戳不仅被使用在Unix系统.类Unix系统中,也在许多其他操作系统中被广泛采用. 目前相当一部分操作系统使用32位二进制数字表示时间.此类系统的Unix时间戳最多可以使用到格林威治时间2038年01月19日

Java中SimpleDateFormat日期格式转换详解及代码示例

SimpleDateFormat是处理日期格式转换的类. 官方API_1.8关于SimpleDateFormat继承于DateFormate截图: SimpleDateFormat的构造器如下: SimpleDateFormat中的格式定义,常用的用红色框圈出: 中文解释: y : 年 M : 年中的月份 D : 年中的天数 d : 月中的天数 w : 年中的周数 W : 月中的周数 a : 上下/下午 H : 一天中的小时数(0-23) h : 一天中的小时数(0-12) m : 小时中的分钟