JAVA 时间的加减与格式化

TAG: java 时间格式化 分钟加减 时间加减

由于最近项目要用到某些功能的自动化,需要恶补一系列的知识,所以写下相关细节,不为别的,因为最近意识到,自己很残疾,一个月前写的代码今天一看都不知道写的是什么,还问别人这么屎的代码是谁写的,结果被告知是某位残疾的大哥,结果修改中才依稀回忆起出于自己之手,唉,注释很重要啊!

第一节 由于定时器的粒度精确到了分钟级,所以需要对当前分钟进行操作

public static void timeplus(){
   Calendar nowTime = Calendar.getInstance(); 
   Date nowDate = (Date) nowTime.getTime(); //得到当前时间
   Calendar afterTime = Calendar.getInstance(); 
   afterTime.add(Calendar.MONTH, 5); //当前月份+5
   afterTime.add(Calendar.MINUTE, 5); //当前分钟+5
   Date afterDate = (Date) afterTime.getTime(); 
   System.out.println("今天时间"+nowDate);
   System.out.println("修改后的 时间"+afterDate);

}

第二节 时间的输出显示(格式化)

public static void dateFormate(){
    Date d = new Date();
        String s;
          
         /** Date类的格式: Sat Apr 16 13:17:29 CST 2006 */
        System.out.println(d);
          
        System.out.println("******************************************");   
        
        /** getDateInstance() */ 
        /** 输出格式: 2008-10-7 */
        s = DateFormat.getDateInstance().format(d);
        System.out.println(s);
        
        /** 输出格式: 2008-10-7 */
        s = DateFormat.getDateInstance(DateFormat.DEFAULT).format(d);
        System.out.println(s);
        
        /** 输出格式: 2008年10月7日 星期二 */
        s = DateFormat.getDateInstance(DateFormat.FULL).format(d);
        System.out.println(s);
        
        /** 输出格式: 2008-10-7 */
        s = DateFormat.getDateInstance(DateFormat.MEDIUM).format(d);
        System.out.println(s);
        
        /** 输出格式: 08-10-7 */
        s = DateFormat.getDateInstance(DateFormat.SHORT).format(d);
        System.out.println(s);
        
        /** 输出格式: 2008-01-01 00:00:00 */
        java.text.DateFormat format1 = new java.text.SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        s = format1.format(new Date());
        System.out.println(s);
        
        /** 输出格式: 2008-01-01 00:00:00 */
        System.out.println((new java.text.SimpleDateFormat("yyyy-MM-dd hh:mm:ss")).format(new Date()));
        
        /** 输出格式: 20080101000000***/
        java.text.DateFormat format2 = new java.text.SimpleDateFormat("yyyyMMddhhmmss");
        s = format2.format(new Date());
        System.out.println(s); }
  		 //使用默认时区和语言环境获得一个日历   
Calendar cale = Calendar.getInstance();   
//对日期和时间进行设置   
cale.set(Calendar.YEAR, 2008);   
//此处注意,MONTH是从0开始的,一下设置为12,如果为宽松模式,时间自动变为09年1月,如果为严格模式,应抛出异常   
cale.set(Calendar.MONTH, 12);   
//月份减1   
cale.add(Calendar.MONTH, -1);   
cale.set(Calendar.DAY_OF_MONTH, 20);   
cale.set(Calendar.HOUR_OF_DAY, 18);   
cale.set(Calendar.MINUTE, 32);   
//分钟加1 对于没有设置项,如秒,则采用系统默认   
cale.add(Calendar.MINUTE, 1);   
//将Calendar类型转换成Date类型   
Date tasktime=cale.getTime();   
//设置日期输出的格式   
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");   
//格式化输出   
System.out.println(df.format(tasktime)); 

 附:SimpleDateFormat的格式:

    在实例化SimpleDateFormat时,采用"yyyy-MM-dd HH:mm:ss"这样的构造参数,可以对输出的格式进行设置。而字符串中的字母代表的含义如下:

   G 年代标志符
y 年
M 月
d 日
h 时 在上午或下午 (1~12)
H 时 在一天中 (0~23)
m 分
s 秒
S 毫秒
E 星期
D 一年中的第几天
F 一月中第几个星期几
w 一年中第几个星期
W 一月中第几个星期
a 上午 / 下午 标记符 
k 时 在一天中 (1~24)
K 时 在上午或下午 (0~11)
z 时区

除了上述具有实际含义的字母之外,还可以配合诸如:空格、:、-等进行格式化设置

资料选自:http://zhidao.baidu.com/question/32745769.html

http://blog.csdn.net/songkang601/archive/2007/07/12/1687299.aspx

http://jiankeafei.javaeye.com/blog/230928

你可能感兴趣的:(JAVA)