在项目的开发过程中 经常碰到时间处理比较麻烦,今天没事情简单的写了几个处理方法
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.sql.Timestamp;
import java.util.Calendar;
public class DateUtil {
/**
* StringToDate
* @param dateStr
* @return
* create by zhenglinhua
* 2008-5-22
*/
public Date getDate(String dateStr){
Date date=null;
SimpleDateFormat s=new SimpleDateFormat("yyyyMMdd");
try {
date=s.parse(dateStr);
} catch (ParseException e) {
e.printStackTrace();
date=new Date();
}
return date;
}
public String dateToString(Date date){
String result=null;
SimpleDateFormat sd=new SimpleDateFormat("yyyyMMdd hh:mm:ss.0");
result=sd.format(date);
return result;
}
/**\
*java.util.Date比较
*
* 比较也可以用before方法
* create by zhenglinhua
* 2008-5-22
*/
public void compareDate(){
Date date1=getDate("2007-01-01");
Date date2=getDate("2008-01-01");
if(date2.after(date1)){
System.out.println("date2更大");
}
if(date1.after(date2)){
System.out.println("date1更大");
}
}
/**
* 得到当前时间
* @return
* create by zhenglinhua
* 2008-5-22
*/
public Timestamp getNowTimestamp(){
Timestamp tm=new Timestamp(System.currentTimeMillis());
return tm;
}
/**
* StringToTimestamp注意要转化成Timestamp的String至少要精确人秒,否则报错
* @return Timestamp最规范的格式是精确到微秒,例yyyy-MM-dd 00:00:00.123
* create by zhenglinhua
* 2008-5-22
*/
public Timestamp getNowTimestamp(String dateStr){
Timestamp tm=Timestamp.valueOf(dateStr);
return tm;
}
/**
* TimestampToString
* @param timesTamp
* @return
* create by zhenglinhua
* 2008-5-22
*/
public String getTimestampToString(Timestamp timesTamp){
return timesTamp.toString();
}
/**
* 两个Timestamp时间比较
* 因为Timestamp继承java.util.Date
* 比较就和Date一样比较
* 还有before函数也可以用
* Timestamp和Date可以通过after或before直接比较
* create by zhenglinhua
* 2008-5-22
*/
public void compareTimestamp(Timestamp t1,Timestamp t2){
if(t1.after(t2)){
System.out.println("t1更大");
}
if(t2.after(t1)){
System.out.println("t2更大");
}
}
public void getCalendar(){
Calendar ca=Calendar.getInstance();
//Calendar转化为Date
Date date=ca.getTime();
//Date转化为Calendar,Calendar所有时间值就是给定date的时间值
ca.setTime(date);
//Calendar也可以转成long型,有long型就可以转化为其他好多时间类型如:
Date date2=new Date(ca.getTimeInMillis());
Timestamp t=new Timestamp(ca.getTimeInMillis());
//更重要的是Calendar可以得到重要的时间值 如年 月 日 星期等
System.out.println(ca.get(Calendar.YEAR));//年
System.out.println(ca.get(Calendar.MONTH)+1);//月
System.out.println(ca.get(Calendar.DATE));//日期
System.out.println(ca.get(Calendar.HOUR));//小时(12小时制)
System.out.println(ca.get(Calendar.HOUR));//小时(24小时制)
System.out.println(ca.get(Calendar.DAY_OF_WEEK)-1);//星期
//==还有更多的时间值
}
}
简单的写了几个常见的时间格式处理方法 时间之间的相互转化可以用String类型来过渡,也就是说一个时间类型可以转
化为String类型 然后由String类型转化为另一个时间类型,当然时间类型可以直接转化的 就直接转化了,没必要搞得那
么麻烦,比如Timestamp是java.util.Date的子类,转化起来也就方便多了,还有的就是要注意,Timestamp精确到毫
秒,转化时间至少要精确到秒才可以转化为Timestamp否则会异常!