当前位置:  编程技术>java/j2ee

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

    来源: 互联网  发布时间:2014-11-01

    本文导语:  代码如下: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...

代码如下:

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


    
 
 

您可能感兴趣的文章:

  • Linux下gettimeofday()函数和clock()函数:精确到毫秒级的时间
  • 用哪些函数可以得到执行一个程序的系统CPU时间,用户CPU时间,时钟时间啊?
  • mysql中字符串和时间互相转换的方法(自动转换及DATE_FORMAT函数)
  • 测试函数运行时间的函数?
  • php将unix时间戳转换成字符串时间函数(date)
  • php中把美国时间转为北京时间的自定义函数分享
  • php时间格式化函数date介绍及用法参考
  • php自定义函数实现美国时间转为北京时间
  • php实现的太平洋时间和北京时间互转的自定义函数分享
  • 请教:javascript 里有没有时间循环执行的函数,如我按住鼠标触发mousedown 事件函数时,反复执行我写的一个函数?
  • 请问高手,如何用linux操作系统里的标准c函数获取bios时间,高分!!!!
  • 请问在linux调试中能否有调用函数的显示时间
  • mysql计算时间差函数
  • linux 获取毫秒精度以上的时间函数
  • 求linux C++的时间相关函数及用法,急用,谢谢
  • 寻一段时间函数的代码,高分相送
  • python下用os.execl执行centos下的系统时间同步命令ntpdate iis7站长之家
  • JSP中怎样编写时间戳?希望能有现成的函数!
  • 在java中怎样将以下的时间赋给该函数setTime
  • 请问用什么函数显示日期和时间?
  • linux内核层面,有什么好的获取时间的函数
  • 关于linux内核中信号处理的问题?(信号处理的时间)
  • 一个关于时间处理的问题
  • 日期时间处理的命令行工具 Dateutils
  • 获取处理时间(准确到毫秒)
  • 处理完5个记录的总时间是多少?
  • 关于 时间处理问题,在线等待。
  • Python 时间处理datetime实例
  • 写了一个处理大量文本的程序,发现跑一段时间以后大量的吃掉内存。
  • 请问怎么样在dos 下面有哪一个命令能取得时间放到批处理里用.
  • linux 下一个时间的处理
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • php将标准字符串格式时间转换成unix时间戳_strtotime
  • linux设置时间和把时间从UTC转成本地时间的
  • Linux下用ntpdate同步时间及date显示设置时间
  • 用户CPU时间 系统CPU时间 时钟时间 不懂
  • python下用os.execl执行centos下的系统时间同步命令ntpdate
  • 用touch命令修改访问时间时,却发现连修改时间和状态时间也改了.疑惑
  • Python将日期时间按照格式转换成字符串
  • ★★怎样获得一个文件的创建时间,修改时间,和访问时间?急!在线等待...
  • Linux/CentOS下的CST和UTC时间的区别以及不一致的解决方法
  • arm2440下,系统时间和硬件时间一致,但创建文件得到的时间不一致,想过几种方法,似乎无用
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • 获取系统时间和修改系统时间
  • aps.net session全面介绍(生命周期,超时时间)
  • 关于内核时间与用户时间;我在线等你回复,所以你要告诉我!
  • php session 原理详解,用法介绍以及如何设置过期时间
  • 求助,Linux系统时间总比硬件时间慢!
  • UNIX的时间为什么会隔一段时间就提前一个小时
  • 如何让centos系统时间和另外一台window系统时间保持同步
  • Solaris 2.5.1 系统时间和文件保存时间不一致
  • 怎样得到系统的时间并且修必系统时间
  • Linux下如何判断系统当前时间和一个表里面已有的时间的大小?




  • 特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3