Timestamp Date String Calendar

java.util.Date

在除了SQL语句的情况下使用。java.util.Date 是java.sql.Date的父类。这是常用的表示时间的类,我们通常格式化或者得到当前时间都是用它。一般是日常日期字段。


java.sql.Date

针对SQL语句使用的,它只是包含日期而没有时间部分。java.util.Date 是java.sql.Date的子类。这个在读写数据库的时候用。一般是数据库中的时间字段。


java.sql.Timestamp

是一个与java.util.Data类有关的瘦包装器(thin wrapper),它允许JDBC API将该类标识为SQl TIMESTAMP值。它通过允许小数秒到纳秒界别精度的规范来添加保存SQL TIMESTAMP小数秒值得能力。Timestamp 也提供支持时间戳值得JDBC转义语法的格式化解析操作的能力。

计算Timestamp对象的精度是二者之一:

只有证书秒才会存储在java.util.Date组件中。小数秒(毫秒级)是独立存在的。传递的不是java.sql.Timestamp实例的对象时,Timestamp.equals(Object)方法永远不会返回true,因为日期的毫微秒组件是未知的,相对于java.util.Date.equals(Object)方法而言,Timestamp.equals(Object)方法是不对称的。此外,hashcode方法使用底层jaava.util.Date实现并因此在其计算中不包括毫微秒。鉴于Timestamp类和上述java.util.Date类之间的不同,建议代码一般不要讲Timestamp值为java.tuil.Date的实例。Timestamp和java.util.Date之间的继承关系实际上是实现继承,而不是类型继承。


Calendar

在java中是一个抽象类(Abstract Class), GregorianCalendar是它的一个具体实现。

1.Calendar的月份的起始值为0而不是1,所以要设置八月时,我们用7而不是8。即:calendar.set(Calendar.MONTH,7);


转换关系

Timestamp --> String

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//定义格式

Timestamp now  = new Timestamp(System.currentTimeMillis());//获取系统当前时间

String str = df.format(now);


Data --> Timestamp

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//定义格式

String time = df.format(new Date());

Timestamp ts = Timestamp.valueOf(time);


java.util.Date <--> java.sql.Date通过getTime方法进行相互构建的。


Calendar --> Date

Calendar calendar = Calendar.getInstance();

java.util.Date date = calendar.getTime();


Date --> Calendar

calendar.setTime(date);


Calendar --> String

Calendar calendar = Calendar.getInstance();

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

String dateStr = sdf.format(calendar.getTime());


String --> Calendar

String str = "2013-11-12";

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

Date date = sdf.parse(str);

Calendar calendar = Calendar.getInstance();

calendar.setTime(date);


Date --> String

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

String dateStr = sdf.format(new Date());


String --> Date

String str = "2013-11-12";

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

Date date = sdf.parse(str);


String --> Timestamp

Timestamp ts = Timestamp.valueOf("2013-11-12 17:55:00");




发布了42 篇原创文章 · 获赞 1 · 访问量 3万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章