Chinaunix首页 | 论坛 | 博客
  • 博客访问: 60495
  • 博文数量: 20
  • 博客积分: 815
  • 博客等级: 准尉
  • 技术积分: 197
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-21 22:26
文章分类
文章存档

2012年(1)

2011年(1)

2010年(18)

我的朋友

分类: Java

2010-07-18 16:30:33

很有用哦。

一、java_时间转换:

  1. import java.text.DateFormat;
  2. import java.text.SimpleDateFormat;
  3. import java.text.ParseException;
  4. import java.util.Calendar;
  5. import java.util.Date;
  6. DateFormat format = new SimpleDateFormat("yyyy-MM-dd");        
  7. Date date = null;   
  8. String str = null;                 
  9.            
  10. // String转Date   
  11. str = "2007-1-18";         
  12. try {   
  13.     date = format.parse(str);  // Thu Jan 18 00:00:00 CST 2007   
  14. catch (ParseException e) {   
  15.     e.printStackTrace();   
  16. }   
  17.            
  18. date = java.sql.Date.valueOf(str);  // 只保留日期部分,返回的是java.sql.Date  2007-01-18   
  19.            
  20. // Date转String   
  21. date = new Date();   // Thu Jan 18 21:35:01 CST 2007   
  22. /*Calendar cal = Calendar.getInstance();  
  23. date = new Date(cal.getTimeInMillis());*/  
  24. str = format.format(date);  // 2007-01-18   
  25.            
  26. format = DateFormat.getDateInstance(DateFormat.SHORT);   
  27. str = format.format(date);  // 07-1-18   
  28.            
  29. format = DateFormat.getDateInstance(DateFormat.MEDIUM);   
  30. str = format.format(date);  // 2007-1-18   
  31.            
  32. format = DateFormat.getDateInstance(DateFormat.FULL);   
  33. str = format.format(date);  // 2007年1月18日 星期四  

取得某一日期的前n个月的日期:

//将一个日期字符串转化成日期
    public  Date   switchStringToDate(String   sDate){
          Date   date=null;
          try{
              SimpleDateFormat   df=new   SimpleDateFormat( "yyyy-MM-dd ");
              date = java.sql.Date.valueOf(sDate);   //转成date形式的yyyy-MM-dd
             
          }catch(Exception   e){
              System.out.println( "日期转换失败: "+e.getMessage());
          }
          return   date;
    }
//将一个日期字符串转化成Calendar
    public  Calendar   switchStringToCalendar(String   sDate){
            Date   date   =   switchStringToDate(sDate);
            Calendar   c   =   Calendar.getInstance();
            c.setTime(date);
            return   c;
    }
 //取得某个时间前n个月的相对应的一天
    public  String   getNMonthBeforeOneDay(String sDate,int n){
            Calendar c   =   switchStringToCalendar(sDate);
            c.add(c.MONTH,-n);
            Date date=java.sql.Date.valueOf(c.get(c.YEAR)+ "-"+(c.get(c.MONTH)+1)+ "-"+c.get(c.DATE));
            DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
            String str = format.format(date);  // 2007-01-18
   return   str;

    }

二、javadoc

核心提示:javadoc可以根据项目代码的注释(当然是规范化的)自动生成HTML格式的API文档。

javadoc可以根据项目代码的注释(当然是规范化的)自动生成HTML格式的API文档。

三种注释类型(注释必须紧贴着注释体,不然javadoc会忽略):
类注释
变量注释
方法注释

书写格式:
/** <-->
* ........
* @XXX <-->
*/

参数说明:
@see 生成文档中的“参见xx 的条目”的超链接,后边可以加上:“类名”、“完整类名”、“完整类名#方法”。可用于:类、方法、变量注释。
@param 参数的说明。可用于:方法注释。
@return 返回值的说明。可用于:方法注释。
@exception 可能抛出异常的说明。可用于:方法注释。
@version 版本信息。可用于:类注释。
@author 作者名。可用于:类注释。

@deprecated 对类或方法的说明 该类或方法不建议使用,引起不推荐使用的警告

@note  表示注解,暴露给源码阅读者的文档

@remark 表示评论,暴露给客户程序员的文档

@since 表示从那个版本起开始有了这个函数

@see  表示交叉参考

javadoc命令:
javadoc [options] [packagenames] [sourcefiles]

-public 仅显示 public 类和成员
-protected 显示 protected/public 类和成员 (缺省)
-package 显示 package/protected/public 类和成员
-private 显示所有类和成员
-d  输出文件的目标目录
-version 包含 @version 段
-author 包含 @author 段
-splitindex 将索引分为每个字母对应一个文件

@interface

它用于定义新的注释类型(annotation type)。新建一个注释类型看起来和定义一Interface 没有什么两样,
MyTag.java用于新建一个用户自定义标签,代码如下,

================================================================================
package tiger.annotation;
/**
* 用户自定义标签??MyTag
*/
public @interface MyTag { }

定义了一个tag之后,我们就可以在任何java文件中使用这个tag了,
import tiger.annotation.MyTag;
public class TagTest{
   
    @MyTag
    public void testTag(){
    }
}
===============================================================================

注释类型还可以有成员变量,

==============================================================================
package tiger.annotation;
/**
* 用户自定义标签??带有成员变量的MyTag
*/
public @interface MyTag {

    String name();

    int age();
}
=============================================================================

然后我们可以这么使用这个标签,
    @MyTag(name="MyTag",age=1)
    public void testTag(){
    }

    使用标签最终是为了帮助开发人员提取注释信息,然后根据不同需求做进一步处理,下面我们来看看如何获取注释信息。

=============================================================================
import java.lang.annotation.Annotation;
import tiger.annotation.MyTag;
public class TagTest{
   
    @MyTag(name="MyTag",age=1)
    public void test(){
    }

    public static void main(String[] args){
        TagTest tt = new TagTest();
        try {
            Annotation[] annotation =tt.getClass().getMethod("test").getAnnotations();
            for (Annotation tag :annotation)  {            
              System.out.println("Tag is:" + tag);
              System.out.println("tag.name()" + ((MyTag)tag).name());
              System.out.println("tag.age()" + ((MyTag)(tag)).age());
             }
         } catch(NoSuchMethodException e) {
             e.printStackTrace();
         }
    }
}
===============================================================================

     需要注意的一点是,在执行这段代码之前我们还有一点小工作要做,还需要给我们的自定义标签MyTag加上一个说明标签,@ Retention, 表明注释信息将可以在运行时刻通过反射机制得到。如果不加入这个标签,上面的代码将没有任何输出。修改以后的MyTag如下,

================================================================================
/**
* 用户自定义标签??带有成员变量的MyTag
*/
@Retention(RetentionPolicy.RUNTIME)
public @interface MyTag {

    String name();

    int age();
}
================================================================================

然后我们执行TagTest可以得到输出如下,

Tag is:@tiger.annotation.MyTag(name=MyTag, age=1)
tag.name()MyTag
tag.age()1

好了,Tiger新的注释语法基本用法就这么简单,基本用法虽然简单,但是获取注释信息之后如何处理确很值得推敲,我们可以用他们来做一些语法检查,文件相关性检查,进行各种统计等等

阅读(429) | 评论(0) | 转发(0) |
0

上一篇:希望

下一篇:成人儿童节

给主人留下些什么吧!~~