`
ddh9504
  • 浏览: 110986 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

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

 }

}

分享到:
评论

相关推荐

    java基础工具类iceroot

    封装了很多有用的方法. 该类库无任何第三方依赖. 涵盖了 字符串操作 时间转化 读取配置文件 等方面. 基础工具类对于java代码的编写是非常必要的,然 而很多常见的操作在很多第三方类库中并未提供,我们必须一遍又一...

    Java开发技术大全(500个源代码).

    invokeMethod.java 同一个类中调用方法示例 invokeOther.java 类的外部调用方法示例 invokeStaticMethod.java 调用静态方法示例 localVariable.java 演示局部变量 localVSmember.java 局部变量与成员变量同名...

    自定义java常见工具类

    java开发中常用的工具类 比如 1:hibernate的配置 工具类复写 2:字符串加密 MD5加密 3:javabean到map的自动映射封装 4:javabean java对象到xml的自动封装 5:各种日期格式的处理 6:json的自动封装处理 7:...

    JAVA_API1.6文档(中文)

    java.util.concurrent 在并发编程中很常用的实用工具类。 java.util.concurrent.atomic 类的小工具包,支持在单个变量上解除锁的线程安全编程。 java.util.concurrent.locks 为锁和等待条件提供一个框架的接口和类...

    Java编程练习题资源 学习Java编程是一项重要的技能,无论是初学者还是有经验的开发人员都可以从练习题中受益 这份练习题

    在学习Java编程时,熟练掌握常用的Java类和API是至关重要的。以下是关于Java编程基础、面向对象和常用类API知识的练习题资源介绍,旨在帮助您巩固知识、提高编程能力。 目录概览: Java编程基础: 变量与数据类型 ...

    java 常用工具源码

    java 常用工具源码,多年工作积累,源码分享。...工作中多年积累常用工具,log封装,日期类,多线程操作,字符串处理,邮件发送,http工具类,页面处理,汉字拼音,ftp ,md5, secret,ValidatorStringEx,Xml类。

    java api最新7.0

    java.util.concurrent 在并发编程中很常用的实用工具类。 java.util.concurrent.atomic 类的小工具包,支持在单个变量上解除锁的线程安全编程。 java.util.concurrent.locks 为锁和等待条件提供一个框架的接口和类,...

    Java开发详解.zip

    031106_【第11章:Java常用类库】_日期操作类(DateFormat、SimpleDateFormat)笔记.pdf 031107_〖第11章:Java常用类库〗_实例操作:取得当前日期笔记.pdf 031108_【第11章:Java常用类库】_Math与Random类笔记.pdf...

    Java 1.6 API 中文 New

    java.util.concurrent 在并发编程中很常用的实用工具类。 java.util.concurrent.atomic 类的小工具包,支持在单个变量上解除锁的线程安全编程。 java.util.concurrent.locks 为锁和等待条件提供一个框架的接口和类,...

    java开发常用工具类.zip

    封装了很多实用的工具类,包括日期操作,字符串操作,读写表格操作,身份证工具获取年龄,生日,地区,性别等,接口请求工具类 加解密算法,签名验证算法 封装发送请求的方等;

    Java基础知识点总结.docx

    Array方法类汇总 304 Java数组与集合小结 305 递归 309 对象的序列化 310 Java两种线程类:Thread和Runnable 315 Java锁小结 321 java.util.concurrent.locks包下常用的类 326 NIO(New IO) 327 volatile详解 337 ...

    JAVA上百实例源码以及开源项目源代码

    Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,日期选择  Java语言开发的简洁实用的日期选择控件,源码文件功能说明:  [DateChooser.java] Java 日期选择控件(主体类) [public]  ...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    1.4.1 类(Class):Java世界中一类物体 14 1.4.2 方法(Method):物体的功能 15 1.4.3 main()方法:所有Java程序执行的起点 15 .1.5 名词解释 16 1.5.1 JDK和Java平台 16 1.5.2 Java编译器(Java Compiler)...

    JavaAPI1.6中文chm文档 part1

    java.util.concurrent 在并发编程中很常用的实用工具类。 java.util.concurrent.atomic 类的小工具包,支持在单个变量上解除锁的线程安全编程。 java.util.concurrent.locks 为锁和等待条件提供一个框架的接口和类...

    JAVA上百实例源码以及开源项目

    Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,日期选择  Java语言开发的简洁实用的日期选择控件,源码文件功能说明:  [DateChooser.java] Java 日期选择控件(主体类) [public]  ...

    疯狂JAVA讲义

    学生提问:为什么静态内部类实例方法也不能访问外部类的实例属性呢? 207 学生提问:接口里是否能定义内部接口? 208 6.7.3 使用内部类 208 学生提问:既然内部类是外部类的成员,是否可以为外部类定义子类,在...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    1.4.1 类(Class):Java世界中一类物体 14 1.4.2 方法(Method):物体的功能 15 1.4.3 main()方法:所有Java程序执行的起点 15 .1.5 名词解释 16 1.5.1 JDK和Java平台 16 1.5.2 Java编译器(Java Compiler)...

    AIC的Java课程1-6章

    第3版 机械工业出版社  教学内容和要求 知识点 重要程度 使用频度 难度 Java 入门 高 中 易 变量和运算符 高 高 中 控制结构 高 高 易 数组 高 高 中 方法 很高 高 中 封装 很高 很高 难...

    java基础案例与开发详解案例源码全

    9.4 日期类简介234 9.5 Java语言国际化时间获取与计算238 9.6 Random类和Math类240 9.7 本章习题243 第10章 10.1 异常概述246 10.2 使用try和catch捕获异常..2 50 10.3 使用throw和throws引发异常252 10.4 finally...

Global site tag (gtag.js) - Google Analytics