Java中日期处理

 
import  java.util.Date;
import  java.text.SimpleDateFormat;
import  java.text.ParseException;
import  java.util.GregorianCalendar;
/*
    G  Era 标志符
    y  年
    M  年中的月份 
    w  年中的周数  
    W  月份中的周数
    D  年中的天数
    d  月份中的天数
    F  月份中的星期
    E  星期中的天数
    a  Am/pm 标记
    H  一天中的小时数(0-23)
    k  一天中的小时数(1-24)
    K  am/pm 中的小时数(0-11)
    h  am/pm 中的小时数(1-12)
    m  小时中的分钟数
    s  分钟中的秒数
    S  毫秒数
    z  时区
    Z  时区
*/
public   class  SimpleDateFormatTest
{
    
/**
     * 字符串转化成时间类型(字符串可以是任意类型,只要和SimpleDateFormat中的格式一致即可)
     * parse
     
*/
    
public   static   void  parse()  throws  Exception
    {        
        
// 注意MM是月,mm是分钟,HH代表0-23,hh代表1-12 AM/PM
        String dateStr  =   " 10/23/2006 6:35:55 " ;
        SimpleDateFormat formatter 
=   new  SimpleDateFormat( " MM/dd/yyyy HH:mm:ss " );
        Date date 
=  formatter.parse(dateStr);
        System.out.println(date);    
    }
    
    
/**
     * 日期类型转换成字符串
     * format
     
*/
    
public   static   void  format()  throws  Exception
    {        
        SimpleDateFormat formatter1 
=   new  SimpleDateFormat( " MM/dd/yyyy HH:mm:ss " );
        Date date1 
=  formatter1.parse( " 10/23/2006 6:35:55 " );
        System.out.println(date1);
        
        GregorianCalendar gc 
=   new  GregorianCalendar( 2006 , 8 , 22 , 9 , 44 , 56 );
        Date date2 
=  gc.getTime();
        SimpleDateFormat formatter2 
=   new  SimpleDateFormat( " yyyy-MM-dd HH:mm:ss " );
        
        String str1 
=  formatter2.format(date1);
        String str2 
=  formatter2.format(date2);
        System.out.println(str1);
        System.out.println(str2);        
    }
    
    
/**
     * 当前时间
     
*/  
    
public   static   void  nowDate()
    {                
        GregorianCalendar gc 
=   new  GregorianCalendar();
        SimpleDateFormat formatter 
=   new  SimpleDateFormat( " yyyy-MM-dd HH:mm:ss " );    
        Date nowDate 
=  gc.getTime();        
        String nowDateStr 
=  formatter.format(nowDate);
        System.out.println(
" now date :  "   +  nowDateStr);
        
    }
    
    
/**
     * 1年前此时
     
*/  
    
public   static   void  yesteryear()
    {        
        GregorianCalendar gc 
=   new  GregorianCalendar();
        Date nowDate 
=  gc.getTime();
        
        SimpleDateFormat formatter 
=   new  SimpleDateFormat( " yyyy-MM-dd HH:mm:ss " );
        String nowDateStr 
=  formatter.format(nowDate);
        System.out.println(
" now date:  "   +  nowDateStr);
        
        
// 此时自1970年1月1日00:00:00GMT以来此Date对象表示的毫秒数
         long  nowDateMS  =  nowDate.getTime();
        
        
// 去年此时自1970年1月1日00:00:00GMT以来此Date对象表示的毫秒数
         long  yesteryearNowDateMS  =  (nowDateMS / 1000   -   60 * 60 * 24 * 365 ) * 1000 ;
        
        Date yesteryearNowDate 
=   new  Date(yesteryearNowDateMS);        
        String yesteryearNowDateStr 
=  formatter.format(yesteryearNowDate);
        System.out.println(
" yesteryear date:  "   +  yesteryearNowDateStr);    
    } 
    
    
/**
     * 明天此时
     
*/
    
public   static   void  tomorrow()
    {        
        
// 当前日期
        GregorianCalendar gc  =   new  GregorianCalendar();
        Date nowDate 
=  gc.getTime();
        
        SimpleDateFormat formatter 
=   new  SimpleDateFormat( " yyyy-MM-dd HH:mm:ss " );
        String nowDateStr 
=  formatter.format(nowDate);
        System.out.println(
" now date:  "   +  nowDateStr);
        
        
// 当前自1970.1.1 00:00:00GMT以来的毫秒数
         long  nowTime  =  nowDate.getTime();
        
        
// 明天此时自1970.1.1 00:00:00GMT以来的毫秒数
         long  tomorrowTime  =  (nowTime / 1000   +   60 * 60 * 24 ) * 1000 ;
        
        Date tommorDate 
=   new  Date(tomorrowTime);
        String tomorrowThisTimeStr 
=  formatter.format(tommorDate);
        System.out.println(
" tomorrow this date:  "   +  tomorrowThisTimeStr);
    }
    
    
/**
     * 两个时间之间的天数
     *
     
*/
    
public   static   void  interval()  throws  Exception
    {
        String strA 
=   " 2006-9-10 " ;    
        String strB 
=   " 2006-9-16 " ;
        
        SimpleDateFormat formatter 
=   new  SimpleDateFormat( " yyyy-MM-dd " );
        
        Date dateA 
=  formatter.parse(strA);
        Date dateB 
=  formatter.parse(strB);
        
        
long  dateAMS  =  dateA.getTime();
        
long  dateBMS  =  dateB.getTime();
        
        
// 两日期相差的毫秒数
         long  intervalMS  =  dateBMS  -  dateAMS;
        
        
// 两日期相差的天数
         long  intervalDay  =  intervalMS / 1000 / 60 / 60 / 24 ;
        
        System.out.println(strA 
+   " "   +  strB  +   " 相隔 "   +  intervalDay  +   " " );
    }

    
/**
     * 某年某月第几周求日期
     * 如:2006年9月的第2个星期五是几号
     
*/
    
public   static   void  calculatDate()  throws  Exception
    {
        SimpleDateFormat formatter2 
=   new  SimpleDateFormat( " yyyy-MM F E " );
        Date date2
=  formatter2.parse( " 2006-09 2 星期五 " ); // 2006年9月的第2个星期五是几号
        SimpleDateFormat formatter3  =   new  SimpleDateFormat( " yyyy-MM-dd " );
        String mydate2
= formatter3.format(date2);
        
        System.out.println(mydate2);
    }
    
    
/**
     * 给定日期求是星期几
     
*/
    
public   static   void  calculatWeek()  throws  Exception
    {
        SimpleDateFormat formatter1 
=   new  SimpleDateFormat( " yyyy-MM-dd " );
        Date date 
=  formatter1.parse( " 2006-9-10 " );
        
        SimpleDateFormat formatter2 
=   new  SimpleDateFormat( " E " );
        String weekStr 
=  formatter2.format(date);
        
        System.out.println(weekStr);
    }
    
    
public   static   void  main(String[] args)  throws  Exception
    {
        parse();                
        format();        
        nowDate();        
        yesteryear();        
        tomorrow();
        interval();
        calculatDate();
        calculatWeek();
    }    
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值