首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

java 日期种的常用方法封装

2012-10-31 
java 日期类的常用方法封装package com.mongodbimport java.io.Serializableimport java.sql.Timestamp

java 日期类的常用方法封装

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

?}

}

热点排行