Timestamp Date String Calendar

本文详细介绍了Java中处理日期和时间的各种类,包括java.util.Date、java.sql.Date、java.sql.Timestamp及Calendar等,并提供了这些类之间的转换方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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");




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值