Java中Date,Calendar,Timestamp的区别以及相互转换与使用
在Java中,Date
、Calendar
和Timestamp
是处理日期和时间的三个主要的类。本文将详细介绍它们的区别以及如何相互转换和使用。
Date类
Date
类是Java中最早的日期和时间处理类。它表示从GMT(格林尼治标准时间)1970年1月1日00:00:00时间开始至今的毫秒数。由于毫秒是一个长整数,因此Date
类具有良好的跨平台性。Date
类中的方法既可以格式化日期和时间,也可以将其解析为时间戳。以下是一个简单的Date
类示例:
import java.util.Date;
import java.text.SimpleDateFormat;
public class DateExample {
public static void main(String[] args) {
Date date = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formattedDate = formatter.format(date);
System.out.println("当前日期和时间为:" + formattedDate);
}
}
输出结果:
当前日期和时间为:2021-06-30 16:22:37
Calendar类
Calendar
类是一个抽象类,它提供了一种处理日期和时间的方式,使得开发人员可以操作年、月、日、时、分、秒等各个时间单位。Calendar
类使得计算时间间隔、获取特定时间段的日期变得非常容易。以下是一个使用Calendar
类设置时间的简单示例:
import java.util.Calendar;
public class CalendarExample {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, 2021);
calendar.set(Calendar.MONTH, 5);
calendar.set(Calendar.DAY_OF_MONTH, 30);
calendar.set(Calendar.HOUR_OF_DAY, 16);
calendar.set(Calendar.MINUTE, 38);
calendar.set(Calendar.SECOND, 50);
System.out.println("设置日期时间为:" + calendar.getTime());
}
}
输出结果:
设置日期时间为:Wed Jun 30 16:38:50 CST 2021
Timestamp类
Timestamp
类是一个具体类,继承了Date
类,并增加了对SQL中日期和时间数据类型的支持。Timestamp
类存储了自1970年1月1日00:00:00 GMT以来的毫秒数,并提供了许多方便的方法来处理时间戳。以下是一个使用Timestamp
类将日期转换为时间戳的示例:
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
public class TimestampExample {
public static void main(String[] args) {
String string = "2021-06-30 16:45:00";
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Timestamp timestamp = null;
try {
java.util.Date date = dateFormat.parse(string);
timestamp = new Timestamp(date.getTime());
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("转换的时间戳为:" + timestamp.toString());
}
}
输出结果:
转换的时间戳为:2021-06-30 16:45:00.0
相互转换
Date和Calendar之间的转换
Date
类可以通过Calendar
类的getTime()
方法返回一个对应的时间戳,也就是毫秒数。同样,可以使用setTime()
方法将Date
对象转换为Calendar
对象。以下是一个简单示例:
Date date = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
Date和Timestamp之间的转换
Timestamp
类继承了Date
类,因此可以使用getTime()
和setTime()
方法与Date
类相互转换。以下是一个简单示例:
Date date = new Date();
Timestamp timestamp = new Timestamp(date.getTime());
date = new Date(timestamp.getTime());
Calendar和Timestamp之间的转换
可以使用getTime()
和setTime()
方法将Calendar
对象转换为Timestamp
对象,反之亦然。以下是一个简单示例:
Calendar calendar = Calendar.getInstance();
Timestamp timestamp = new Timestamp(calendar.getTime().getTime());
calendar.setTimeInMillis(timestamp.getTime());
总结
本文对Java中的Date
、Calendar
和Timestamp
类进行了详细介绍,介绍了它们的区别,以及相互之间的转换和使用。因为Java中涉及到日期和时间的计算非常频繁,因此了解这些类的用法非常重要。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java中Date,Calendar,Timestamp的区别以及相互转换与使用 - Python技术站