欢迎访问宙启技术站
智能推送

「Java日期时间处理函数详解」

发布时间:2023-06-12 15:17:00

Java日期时间处理是一个重要的功能模块,涵盖了日期、时间、时区、时间差、计时等各种方面。在Java中,提供了很多日期和时间处理的类,其中最核心的是java.util.Date和java.util.Calendar类。本文将详细介绍Java日期时间处理的函数。

一、Date类

1.获取当前时间

Date类可以通过无参构造函数获取当前时间。例如:

Date now = new Date();

2.获取时间戳

时间戳是指某个时间点距离1970年1月1日00:00:00(格林尼治时间)的毫秒数。Java中Date类提供了getTime()方法,可以获取时间戳。例如:

Date now = new Date();
long ts = now.getTime();

3.比较时间

Date类提供了before()和after()方法,用于比较时间先后顺序。例如:

Date date1 = new Date();
Thread.sleep(1000); //线程等待1秒钟
Date date2 = new Date();
boolean b = date1.before(date2); //日期1是否在日期2之前

4.时间格式化

Date类提供了toString()方法,可以将Date对象以字符串的形式输出,但输出格式不太符合我们需要。因此,需要使用SimpleDateFormat类进行时间格式化。例如:

Date now = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
String str = sdf.format(now);

二、Calendar类

1.获取当前时间

Calendar类可以通过getInstance()方法获取当前时间的实例。例如:

Calendar cal = Calendar.getInstance();

2.设置日期

Calendar类提供了set()方法,可以设置日期。例如:

Calendar cal = Calendar.getInstance();
cal.set(2022, 2, 12); //设置日期为2022年3月12日

3.获取日期

Calendar类提供了get()方法,可以获取日期。例如:

Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR); //获取年份
int month = cal.get(Calendar.MONTH); //获取月份(0-11)
int day = cal.get(Calendar.DAY_OF_MONTH); //获取日

4.日期加减

Calendar类提供了add()方法,可以进行日期加减运算。例如:

Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_MONTH, 1); //日期加1天
cal.add(Calendar.MONTH, -1); //日期减1个月

5.获取时间差

Calendar类提供了getTimeInMillis()方法,可以获取时间差。例如:

Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
cal1.set(2022, 2, 12, 12, 0, 0);
cal2.set(2022, 2, 13, 12, 0, 0);
long diff = cal2.getTimeInMillis() - cal1.getTimeInMillis(); //获取cal2与cal1的时间差(毫秒)

三、TimeZone类

1.获取默认时区

TimeZone类可以通过getDefault()方法获取默认时区。例如:

TimeZone tz = TimeZone.getDefault();

2.获取指定时区

TimeZone类可以通过getTimeZone()方法获取指定时区。例如:

TimeZone tz = TimeZone.getTimeZone("Asia/Shanghai");

四、总结

Java日期时间处理涉及到非常多的概念和函数,需要开发者深入理解。本文介绍了常用的Date、Calendar和TimeZone类的函数,只是其中的冰山一角。在实际开发中,还需要根据具体需求选用更多的函数和类。