java常用类库---日期类的操作实例

本文介绍如何使用Java中的Calendar和SimpleDateFormat类来获取和格式化日期时间。通过具体示例展示了如何实现日期补零、时间戳生成及不同格式的日期输出。

一,本章目标

进一步掌握Calendar类的使用

进一步掌握SimpleDateFormat类的使用

二,具体内容

开发中会经常使用到日期,而且每次取得日期的代码都会重复,所以既然是重复的代码就可以将其定义成一个类,以方便重复使用,但是有一点需要注意:

如果月份是9月的话,则应该显示09,但是如果是09的话,则数字肯定会忽略0,所以要进行一个补0的操作。


Calendar类的操作


取得日期,取得时间戳:

如:2009-01-16  11:25:32.953

时间戳 : 20090116112532953

package 完整的取得时间操作;

import java.util.Calendar;
import java.util.GregorianCalendar;

public class Demo {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		DateTime dt = new DateTime();
		System.out.println("系统时间:" + dt.getDateOne());
		System.out.println("系统时间:" + dt.getDateTwo());
		System.out.println("时间戳:" + dt.getTimeStamp());
	}

}
class DateTime{
	private Calendar calendar =null;
	public DateTime(){
		this.calendar = new GregorianCalendar();
	}
	public String getDateOne(){
		StringBuffer buf = new StringBuffer();
		buf.append(calendar.get(Calendar.YEAR)).append("-");
		buf.append(this.addZero(calendar.get(Calendar.MONTH)+1, 2)).append("-");
		buf.append(this.addZero(calendar.get(Calendar.DAY_OF_MONTH), 2)).append("-");
		buf.append(this.addZero(calendar.get(Calendar.HOUR_OF_DAY), 2)).append("-");
		buf.append(this.addZero(calendar.get(Calendar.MINUTE), 2)).append("-");
		buf.append(this.addZero(calendar.get(Calendar.SECOND), 2)).append("-");
		buf.append(this.addZero(calendar.get(Calendar.MILLISECOND), 3));
		return buf.toString();
		
	}
	
	public String getDateTwo(){
		StringBuffer buf = new StringBuffer();
		buf.append(calendar.get(Calendar.YEAR)).append("年");
		buf.append(this.addZero(calendar.get(Calendar.MONTH)+1, 2)).append("月");
		buf.append(this.addZero(calendar.get(Calendar.DAY_OF_MONTH), 2)).append("日 ");
		buf.append(this.addZero(calendar.get(Calendar.HOUR_OF_DAY), 2)).append("时");
		buf.append(this.addZero(calendar.get(Calendar.MINUTE), 2)).append("分");
		buf.append(this.addZero(calendar.get(Calendar.SECOND), 2)).append("秒");
		buf.append(this.addZero(calendar.get(Calendar.MILLISECOND), 3)).append("毫秒");
		return buf.toString();
		
	}
	
	public String getTimeStamp(){//得到时间戳
		StringBuffer buf = new StringBuffer();
		buf.append(calendar.get(Calendar.YEAR)).append("年");
		buf.append(this.addZero(calendar.get(Calendar.MONTH)+1, 2));
		buf.append(this.addZero(calendar.get(Calendar.DAY_OF_MONTH), 2));
		buf.append(this.addZero(calendar.get(Calendar.HOUR_OF_DAY), 2));
		buf.append(this.addZero(calendar.get(Calendar.MINUTE), 2));
		buf.append(this.addZero(calendar.get(Calendar.SECOND), 2));
		buf.append(this.addZero(calendar.get(Calendar.MILLISECOND), 3));
		return buf.toString();
		
	}
	
	
	private String addZero(int num,int len){
		StringBuffer s = new StringBuffer();
		s.append(num);
		while(s.length() < len){
			s.insert(0, "0");
		}
		return s.toString();
	}
}

以上的操作比较麻烦,因为每个地方还需要进行补零操作。



SimpleDateFormat类:

此类中存在一个方法可以针对Date重新格式化。

package 完整的取得时间操作;

import java.text.SimpleDateFormat;
import java.util.Date;

public class SimpleDateForamtDemo {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		DateTest dt = new DateTest();
		System.out.println("系统日期:" + dt.getDate());
		System.out.println("中文日期:" + dt.getDateComplete());
		System.out.println("系统日期:" + dt.getTimeStamp());
		
	}

}
class DateTest{
	private SimpleDateFormat sdf = null;
	public String getDate(){
		this.sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
		return this.sdf.format(new Date());
	}
	public String getDateComplete(){
		this.sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒SSS毫秒");
		return this.sdf.format(new Date());
	}
	public String getTimeStamp(){
		this.sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
		return this.sdf.format(new Date());
	}
}


三,总结

直接使用SimpleDateForamt类会更加的简单。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值