随笔-124  评论-49  文章-56  trackbacks-0

java开发时往往需要做字符串和日期的转换

主要用到:java.text.SimpleDateFormat

SimpleDateFormat sdf =   new SimpleDateFormat( " yyyy-MM-dd HH:mm:ss " );  

它确立了转换的格式,为什么有的格式大写,有的格式小写,那是怕避免混淆,例如MM是月份,mm是分;HH是24小

时制,而hh是12小时制

1.字符串转日期
   2008-07-10 19:20:00 要把它转成日期,可以用 Date date = sdf.parse( " 2008-07-10 19:20:00 " );

2.日期转字符串
   假如把今天的日期转成字符串可用 String str = sdf.format(new Date());

   这个字符串内容的格式类似2008-07-10 19:20:00。

附编写好的一个简单实例:

import java.util.Date;   
import java.text.ParseException;   
import java.text.SimpleDateFormat;   
public class ConvertDemo {   
  
/**  
* 日期转换成字符串  
@param date   
@return str  
*/
  
public static String DateToStr(Date date) {   
     
   SimpleDateFormat format 
= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");   
   String str 
= format.format(date);   
   
return str;   
}
    
  
/**  
* 字符串转换成日期  
@param str  
@return date  
*/
  
public static Date StrToDate(String str) {   
     
   SimpleDateFormat format 
= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");   
   Date date 
= null;   
   
try {   
    date 
= format.parse(str);   
   }
 catch (ParseException e) {   
    e.printStackTrace();   
   }
   
   
return date;   
}
   
  
public static void main(String[] args) {   
     
   Date date 
= new Date();   
   System.out.println(
"日期转字符串:" + ConvertDemo.DateToStr(date));   
   System.out.println(
"字符串转日期:" + ConvertDemo.StrToDate(ConvertDemo.DateToStr(date)));   
}
   
}
  

import java.text.ParseException;      
import java.text.SimpleDateFormat;      
import java.util.Date;      
/**    
 * JAVA中字符串转与日期型的互转实例    
 
*/
     
public class ExValue{      
     
    
/**    
     * 取当前系统日期,并按指定格式或者是默认格式返回    
     * 
@param format    
     * 
@return    
     
*/
     
    
public static String getNow(String format){      
        
if(null == format || "".equals(format))      
        
{      
            format 
= "yyyy-MM-dd HH:mm:ss";      
        }
      
        SimpleDateFormat sdf 
= new SimpleDateFormat(format);      
        String date 
= sdf.format(new Date());      
        
return date;      
    }
      
    
/**    
     * 将字符型转换为指定格式日期型    
     * 
@param _date 需要转换成日期的字符串    
     * 
@param format 与需要转换成日期的字符串相匹配的格式    
     * 
@return    
     
*/
     
    
private static Date stringToDate(String _date,String format){      
        
if(null == format || "".equals(format))      
        
{      
            format 
= "yyyy-MM-dd HH:mm:ss";      
        }
      
        SimpleDateFormat sdf 
= new SimpleDateFormat(format);      
        Date date
=null;      
        
try {      
            date
=sdf.parse(_date);      
        }
 catch (ParseException e) {      
            
// TODO Auto-generated catch block      
            e.printStackTrace();      
        }
      
        
return date;      
    }
      
    
/**    
     * 将日期型转换为指定格式的字符串    
     * 
@param date 日期    
     * 
@param format 格式    
     * 
@return    
     
*/
     
    
public static String dateToString(Date date,String format){      
        
if(null == format || "".equals(format))      
        
{      
            format 
= "yyyy年MM月dd日 hh点:mm分:ss秒";      
        }
      
        SimpleDateFormat sdf 
= new SimpleDateFormat(format);      
        
return sdf.format(date);      
    }
      
    
public static void main(String[] args) throws Exception {      
        
//当字符串转日期型的时候,format的格式,一定要和需要转成日期的字符串相匹配      
        
//String dateString="2009-01-01",format="yyyy-MM-dd";      
        String dateString="2009-01-01 01:01:02",format="yyyy-MM-dd hh:mm:ss";      
        String result
=stringToDate(dateString, format).toString();      
        System.out.println(
"字符转日期:"+result.toString());      
        System.out.println(
"日期转字符串:"+dateToString(stringToDate(dateString, format),"yyyy年MM月dd日 hh点:mm分:ss秒"));      
    }
      
}
   


System.currentTimeMillis();
//以毫秒为单位返回当前时间

java.util.Calendar


Calendar   g
=Calendar.getInstance();   
  g.add(Calendar.YEAR,
1);   
  SimpleDateFormat   s
=new   SimpleDateFormat("yyyy-MM-dd   HH-mm-ss",Locale.US);   
  String   d
=s.format(g.getTime());   
  System.out.println(d);


 Calendar   calendar   
=   new   GregorianCalendar(); 

          calendar.setTime(date); 

    calendar.add(calendar.DATE,
1);//把日期往后增加一天.整数往后推,负数往前移动 

          date
=calendar.getTime(); 


  Calendar c 
= Calendar.getInstance();            //得到当前日期和时间
        c.set(Calendar.HOUR, 0);                        //把当前时间小时变成0
        c.set(Calendar.MINUTE, 0);                      //把当前时间分钟变成0
        c.set(Calendar.SECOND, 0);                      //把当前时间秒数变成0
        c.set(Calendar.MILLISECOND, 0);                 //把当前时间毫秒变成0
        Date date1 = c.getTime();                       //创建当天的0时0分0秒一个date对象
        c.setFirstDayOfWeek(Calendar.SUNDAY);           //设定星期的第一天是星期天
        c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);   //把日期变成本周的星期天
        Date date2 = c.getTime();                       //得到这个星期的星期天0时0分0秒
        c.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY); //把日期变成本周的星期六
        Date date3 = c.getTime();                       //得到这个星期的星期六0时0分0秒
        System.out.println(date1);
       System.out.println(date2);
       System.out.println(date3);


当天0点0分0秒 
Calendar calendar
=Calendar.getInstance(); 
calendar.set(Calendar.HOUR_OF_DAY,
0); 
calendar.set(Calendar.MINUTE,
0); 
calendar.set(Calendar.SECOND,
0); 
calendar.set(Calendar.MILLISECOND,
0); 
Date today 
= calendar.getTime(); 

这个星期的星期天0时0分0秒和星期六0时0分0秒 
接着上面的 

c.add(Calendar.DATE, 
1-c.get(Calendar.DAY_OF_WEEK)); 
//此时c是本周日的日期(也就是上周日,本周第一天) 
c.add(Calendar.DATE,7-c.get(Calendar.DAY_OF_WEEK)); 
//此时c是本周六的日期 

注意这个c.get(Calendar.DAY_OF_WEEK)一定要实时取,否则先取出来放到int变量中,第一个移到周日成功了,再移就不对了,因为这时c已经是周日那天了。
posted on 2009-12-03 17:09 junly 阅读(2538) 评论(0)  编辑  收藏 所属分类: java

只有注册用户登录后才能发表评论。


网站导航: