我的日期/时间类

一、指定显示中国风的时间
分析:
查阅JDK:

// DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。
public abstract class DateFormat extends Format
 
//获取日期格式器,该格式器具有给定语言环境的给定格式化风格。
public static final DateFormat getDateInstance(int style, Locale aLocale)

// 获取日期/时间格式器,该格式器具有默认语言环境的默认格式化风格。 
public static final DateFormat getDateTimeInstance(int dateStyle, int timeStyle)

要想显示中国风格的时间,则在构造DateFormat对象时传递若干个参数,其中 new Loacle(String language, String country) 构造方法用来根据语言和国家构造一个语言环境。
import java.text.DateFormat ;
import java.util.Date ;
import java.util.Locale ;
public class ChinaDateDemo{
	public static void main(String args[]){
		DateFormat df1 = null ;		// 声明一个DateFormat
		DateFormat df2 = null ;		// 声明一个DateFormat
		df1 = DateFormat.getDateInstance(DateFormat.YEAR_FIELD,new Locale("zh","CN")) ;	// 得到日期的DateFormat对象
		df2 = DateFormat.getDateTimeInstance(DateFormat.YEAR_FIELD,DateFormat.ERA_FIELD,new Locale("zh","CN")) ;	// 得到日期时间的DateFormat对象
		System.out.println("DATE:" + df1.format(new Date())) ; // 按照日期格式化
		System.out.println("DATETIME:" + df2.format(new Date())) ;	 // 按照日期时间格式化

	}
};

程序运行结果:
DATE:2012年7月30日
DATETIME:2012年7月30日 下午04时41分51秒 CST


二、实例操作--取得完整日期
分析:使用SimpleDateFormat类可以方便地把一个日期变为指定的格式,所以直接使用此类操作是最简单、最合适的。


package zz.simpledateformatdemo;
import java.text.SimpleDateFormat;
import java.util.Date;

class DateTime {
	// 声明日期操作对象,
	private SimpleDateFormat sdf = null;

	// 得到完整日期,时间格式:yyyy-mm-dd HH:mm:ss.SSS
	public String getDate(){
		this.sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
		return this.sdf.format(new Date());
		//return this.sdf.format(sdf.parse("yyyy-MM-dd HH:mm:ss.SSS"));
	}

	// 得到完整日期,时间格式:yyyy年mm月dd日 HH时mm分ss秒.SSS毫秒
	public String getChinaDate(){
		this.sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒.SSS毫秒");
		return this.sdf.format(new Date());
	}

	// 得到时间戳: yyyyMMddHHmmssSSS
	public String getDateStamp(){
		this.sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
		return this.sdf.format(new Date());
	}
}
public class SimpleDateFormatDemo {
	public static void main(String []args) {
		DateTime dt = new DateTime();
		System.out.println("系统时间:" + dt.getDate());
		System.out.println("中文时间:" + dt.getChinaDate());
		System.out.println("时间戳:" + dt.getDateStamp());
	}
}

程序运行结果:
系统时间:2012-07-30 16:36:22.866
中文时间:2012年07月30日 16时36分22秒.886毫秒
时间戳:20120730163622887



关于日期Date的一些问题:
1、在数据库编程中,预处理操作PreparedSatement的基本操作方法中:setDate()方法要注意使用。定义如下:

void setDate(int parameterIndex, Date x)throws SQLException

此方法可以设置日期内容,但是使用时后面的Date类型变量是java.sql.Date,而不是java.util.Date,所以如果要将 util -> sql 类型的内容应该使用如下语句形式:
String birthday = "2012-09-06";		// 生日
java.util.Date temp = null;			// 声明一个Date对象
	// 通过SimpleDateFormat类将一个字符串变成 java.util.Date 类型;
temp = new SimpleDateFormat("yyyy-MM-dd").parse(birthday);
	// 通过java.sql.Date 取出具体的日期数,并将其变为 java.sql.Date类型
java.sql.Date bir = new java.sql.Date(temp.getTime());

注意java.util.Date类型无法直接被PreparedStatement对象上使用,所以调用java.util.Date类的getTime()方法,将其内容变为java.sql.Date类型的数据。

2、使用Calendar类得到时间有一个问题,eg:现在的月份是9月份,正确的格式是09,但因为得到的方法返回类型是int类型,所以最终返回的是9,所以要得到正确的格式效果,则必须有 9 前面补一个0.





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值