论坛首页 Java企业应用论坛

java 日期类的常用方法封装

浏览 1949 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-08-18  

package com.mongodb;


import java.io.Serializable;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Locale;
import java.util.TimeZone;
/**
 * ****************************************************************  
**   文 件 名:   DateUtils.java
**   Copyright   (c)   2007-2011  dhdu@qq.com  
**   创 建 人:  
**   日    期:  
**   修 改 人:  
**   日    期:   2011-03-15
**   描    述:   date
**  
**   版    本:  
**  
**  ==============================================================
**
**   修改记录
**
**   版本号    修改编号    修改者       修改日期        修改说明
**   ======   ========    ========     ==========     ===========
**   1.0.0       1         XXX       22011-3-15      没改业务,只是修改了注释规范,过期方法没改       
**
*******************************************************************
 */
public class DateUtils implements Serializable {

 /**
     **   函 数 名: getCurrentCnDateWithTimestamp
     **   输    入:
     **   输    出: Timestamp  
     **   功能描述: 得到中国时区的当前系统时间
     **   全局变量:  
     **   调用模块:  
     **   作    者:   XXX
     **   日    期:  
     **   修    改:  
     **   日    期:
     */
 public static Timestamp getCurrentCnDateWithTimestamp(){
   Date date=new Date();  
   SimpleDateFormat fm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA);  
   fm.setTimeZone(TimeZone.getTimeZone("GMT+8"));  
   String moditime=fm.format(date);  
   Timestamp lasttime=Timestamp.valueOf(moditime); //字符型转换为时间型。  
   return lasttime;  
 }
 /**
     **   函 数 名: getCurrentCnDateWithString
     **   输    入:
     **   输    出: String yyyy-MM-dd HH:mm:ss  
     **   功能描述: 得到中国时区的当前系统时间
     **   全局变量:  
     **   调用模块:  
     **   作    者:   XXX
     **   日    期:  
     **   修    改:  
     **   日    期:
     */
 public static String getCurrentCnDateWithString(){
   Date date=new Date();  
   SimpleDateFormat fm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA);  
   fm.setTimeZone(TimeZone.getTimeZone("GMT+8"));  
   String moditime=fm.format(date);       
   return moditime;  
 }
 
 /**
     **   函 数 名: getCurrentCnDateWithString1
     **   输    入:
     **   输    出: String yyyy-MM-dd
     **   功能描述: 得到中国时区的当前系统时间
     **   全局变量:  
     **   调用模块:  
     **   作    者:   XXX
     **   日    期:  
     **   修    改:  
     **   日    期:
     */
 public static String getCurrentCnDateWithString1(){
   Date date=new Date();  
   SimpleDateFormat fm = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA);  
   fm.setTimeZone(TimeZone.getTimeZone("GMT+8"));  
   String moditime=fm.format(date);       
   return moditime;  
 }
 /**
     **   函 数 名: getCurrentCnDateWithString1
     **   输    入: Date
     **   输    出: String yyyy-MM-dd
     **   功能描述: 得到中国时区的当前系统时间
     **   全局变量:  
     **   调用模块:  
     **   作    者:   XXX
     **   日    期:  
     **   修    改:  
     **   日    期:
     */
 public static String getCurrentCnDateWithString1(Date d){
  Date date=null;
  if(d!=null)
   date=d;
  else
   date=new Date();
   SimpleDateFormat fm = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA);  
   fm.setTimeZone(TimeZone.getTimeZone("GMT+8"));  
   String moditime=fm.format(date);       
   return moditime;  
 }
 
 
 /**
     **   函 数 名: getCurrentCnDateWithDate
     **   输    入:
     **   输    出: Date
     **   功能描述: 得到中国时区的当前系统时间
     **   全局变量:  
     **   调用模块:  
     **   作    者:   XXX
     **   日    期:  
     **   修    改:  
     **   日    期:
     */
 public static Date getCurrentCnDateWithDate(){
   Date date=new Date();  
   SimpleDateFormat fm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA);  
   fm.setTimeZone(TimeZone.getTimeZone("GMT+8"));  
   String moditime=fm.format(date);     
   Timestamp lasttime=Timestamp.valueOf(moditime); //字符型转换为时间型。    
   return new Date(lasttime.getTime());
 }
 
 /**
     **   函 数 名: getAfterDateWithDate
     **   输    入: date日期,amount数字,type 1:月 2:季度 3:年
     **   输    出: Date
     **   功能描述: 得到已知日期以后相隔多久的日期
     **   全局变量:  
     **   调用模块:  
     **   作    者:   XXX
     **   日    期:  
     **   修    改:  
     **   日    期:
     */
 public static Date getAfterDateWithDate(Date date,int amount,int type){  
   Calendar c=Calendar.getInstance();
   c.setTimeInMillis(date.getTime());
   if(type==1){
    c.add(GregorianCalendar.MONTH, amount);   
   }else if(type==2){
     c.add(GregorianCalendar.MONTH, (amount*3));    
   }else  if(type==3){
    c.add(GregorianCalendar.YEAR, amount);   
   }

   return c.getTime();  
 }
 /**
     **   函 数 名: getAfterDateWithTimestamp
     **   输    入: date日期,amount数字,type 1:月 2:季度 3:年
     **   输    出: Timestamp
     **   功能描述: 得到已知日期以后相隔多久的日期
     **   全局变量:  
     **   调用模块:  
     **   作    者:   XXX
     **   日    期:  
     **   修    改:  
     **   日    期:
     */
 public static Timestamp getAfterDateWithTimestamp(Date date,int amount,int type){  
   Calendar c=Calendar.getInstance();
   c.setTimeInMillis(date.getTime());
   if(type==1){
   c.add(GregorianCalendar.MONTH, amount);   
   }else if(type==2){
   c.add(GregorianCalendar.MONTH, (amount*3));    
   }else  if(type==3){
   c.add(GregorianCalendar.YEAR, amount);   
   }  
  return new Timestamp(c.getTimeInMillis());  
 }
 
 /**
     **   函 数 名: getDateYY
     **   输    入: date日期
     **   输    出: String
     **   功能描述: 得到当前时间的两位数年份
     **   全局变量:  
     **   调用模块:  
     **   作    者:   XXX
     **   日    期:  
     **   修    改:  
     **   日    期:
     */
 public static String getDateYY(Date d)
 {
  Calendar c=Calendar.getInstance(TimeZone.getTimeZone("GMT+8")); 
  if(d!=null)
   c.setTime(d);
  String year=String.valueOf(c.get(Calendar.YEAR));
  year=year.substring(year.length()-2);
  return year;
 }
 /**
     **   函 数 名: getDateYYYY
     **   输    入: date日期
     **   输    出: String
     **   功能描述:得到当前时间的四位数年份
     **   全局变量:  
     **   调用模块:  
     **   作    者:   XXX
     **   日    期:  
     **   修    改:  
     **   日    期:
     */
 public static String getDateYYYY(Date d)
 {
  Calendar c=Calendar.getInstance(TimeZone.getTimeZone("GMT+8")); 
  if(d!=null)
   c.setTime(d);
  return String.valueOf(c.get(Calendar.YEAR));
 }
 
 /**
     **   函 数 名: getDateMM
     **   输    入: date日期
     **   输    出: String
     **   功能描述: 得到当前时间的两位数月份
     **   全局变量:  
     **   调用模块:  
     **   作    者:   XXX
     **   日    期:  
     **   修    改:  
     **   日    期:
     */
 public static String getDateMM(Date d)
 {
  Calendar c=Calendar.getInstance(TimeZone.getTimeZone("GMT+8")); 
  if(d!=null)
   c.setTime(d);
  String month=String.valueOf(c.get(Calendar.MONTH)+1);
  if(month.length()==1)
   month="0"+month;
  return month;
  
 }
 
 /**
     **   函 数 名: getDateDD
     **   输    入: date日期
     **   输    出: String
     **   功能描述: 得到当前时间的两位数月份中的第几日
     **   全局变量:  
     **   调用模块:  
     **   作    者:   XXX
     **   日    期:  
     **   修    改:  
     **   日    期:
     */
 public static String getDateDD(Date d)
 {
  Calendar c=Calendar.getInstance(TimeZone.getTimeZone("GMT+8")); 
  if(d!=null)
   c.setTime(d);
  String day=String.valueOf(c.get(Calendar.DAY_OF_MONTH));
  if(day.length()==1)
   day="0"+day;
  return day;
  
 }
 
 /**
     **   函 数 名: getDateQQ
     **   输    入: date日期
     **   输    出: String
     **   功能描述: 得到当前时间的两位数季度
     **   全局变量:  
     **   调用模块:  
     **   作    者:   XXX
     **   日    期:  
     **   修    改:  
     **   日    期:
     */
 public static String getDateQQ(Date d)
 {
  Calendar c=Calendar.getInstance(TimeZone.getTimeZone("GMT+8"));
  if(d!=null)
   c.setTime(d);
  String q=String.valueOf(Double.valueOf(Math.ceil((c.get(Calendar.MONTH)+1)/3d)).intValue());
  if(q.length()==1)
   q="Q"+q;
  return q;
  
 }
 
 /**
     **   函 数 名: getDateWW
     **   输    入: date日期
     **   输    出: String
     **   功能描述: 得到当前时间的两位数一年中的第几周
     **   全局变量:  
     **   调用模块:  
     **   作    者:   XXX
     **   日    期:  
     **   修    改:  
     **   日    期:
     */
 public static String getDateWW(Date d)
 {
  Calendar c=Calendar.getInstance(TimeZone.getTimeZone("GMT+8")); 
  if(d!=null)
   c.setTime(d);
  String w=String.valueOf(c.get(Calendar.WEEK_OF_YEAR));
  if(w.length()==1)
   w="0"+w;
  return w;
  
 }
 
 /**
  * @param args
  */
 public static void main(String[] args) {
  
  System.out.println(getDateWW(new Date()));
//  System.err.println(getCurrentCnDateWithDate());
//  System.err.println(getCurrentCnDateWithString());
//  System.err.println(getCurrentCnDateWithTimestamp());  
//  System.err.println(getCurrentCnDateWithTimestamp().after(getAfterDateWithTimestamp(getCurrentCnDateWithDate(), 1, 1)));

 }

}

论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics