我的日期/时间类

来源:互联网 发布:淘宝的拍卖玉器可信吗 编辑:程序博客网 时间:2024/05/19 07:44

一、指定显示中国风的时间
分析:
查阅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 ;// 声明一个DateFormatDateFormat df2 = null ;// 声明一个DateFormatdf1 = 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.SSSpublic 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());}// 得到时间戳: yyyyMMddHHmmssSSSpublic 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.





原创粉丝点击