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

Java日期处理:10个非常有用的函数

发布时间:2023-06-13 03:27:59

在Java编程中,日期处理是必不可少的一部分。处理日期可以用来计算日期差异,格式化日期和时间,同时在应用中经常需要权衡各种日期格式或格式化选项。这篇文章将介绍Java中非常有用的10个日期处理函数。

1. Date()构造函数:

使用Date类的无参构造函数可以创建一个包含当前日期和时间的对象。例如:

Date currentDate = new Date();
System.out.println(currentDate);

输出:

Fri Sep 25 14:36:17 CST 2020

2. SimpleDateFormat:

SimpleDateFormat类是Java中用于日期格式化的类。可以用它来转换日期和时间字符串。

Date currentDate = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = dateFormat.format(currentDate);
System.out.println(dateString);

输出:

2020-09-25 14:36:17

3. Date.from()方法:

Date类中的from()方法可以将Instant(用于表示时间戳)转换为Date对象。

Instant instant = Instant.now();
Date date = Date.from(instant);
System.out.println(date);

输出:

Fri Sep 25 14:36:17 CST 2020

4. Date.toInstant()方法:

Date类中的toInstant()方法可以将DateTime转换为Instant对象。

Date currentDate = new Date();
Instant instant = currentDate.toInstant();
System.out.println(instant);

输出:

2020-09-25T06:36:17.850Z

5. Calendar.getInstance()方法:

Calendar类是Java中非常有用的一个日期类。可以使用它来处理各种日历操作。使用getInstance()方法获取Calendar的实例。

Calendar calendar = Calendar.getInstance();
System.out.println(calendar);

输出:

java.util.GregorianCalendar[time=1601030189033,areFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2020,MONTH=8,WEEK_OF_YEAR=39,WEEK_OF_MONTH=5,DAY_OF_MONTH=25,DAY_OF_YEAR=269,DAY_OF_WEEK=6,DAY_OF_WEEK_IN_MONTH=4,AM_PM=1,HOUR=2,HOUR_OF_DAY=14,MINUTE=36,SECOND=29,MILLISECOND=33,ZONE_OFFSET=28800000,DST_OFFSET=0]

6. Calendar.get()方法:

Calendar类的get()方法可获取特定日期信息。例如,下面的代码将输出当前年份。

Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
System.out.println(year);

输出:

2020

7. Calendar.add()方法:

Calendar类的add()方法可通过指定偏移量增加或减少时间。

Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DATE, -7);
Date lastWeek = calendar.getTime();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String lastWeekString = dateFormat.format(lastWeek);
System.out.println(lastWeekString);

输出:

2020-09-18

8. Calendar.set()方法:

Calendar类的set()方法可用于设置特定日期信息。例如,下面的代码将设置日期为2020年10月14日。

Calendar calendar = Calendar.getInstance();
calendar.set(2020, 9, 14);
Date date = calendar.getTime();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String dateString = dateFormat.format(date);
System.out.println(dateString);

输出:

2020-10-14

9. LocalDate类:

LocalDate类是Java 8中的日期类,可用于处理日期操作,例如计算日期差异或处理ISO日期格式。

LocalDate today = LocalDate.now();
LocalDate nextWeek = today.plusWeeks(1);
long daysUntilNextWeek = ChronoUnit.DAYS.between(today, nextWeek);
System.out.println(daysUntilNextWeek);

输出:

7

10. Period类:

Java 8中的Period类用于计算日期间隔。例如,下面的代码将计算两个日期间的天数间隔。

LocalDate date1 = LocalDate.of(2020, 9, 18);
LocalDate date2 = LocalDate.of(2020, 10, 14);
Period period = Period.between(date1, date2);
int days = period.getDays();
System.out.println(days);

输出:

26

总之,日期处理是开发中必不可少的一部分。Java中的日期类和函数可以帮助您更轻松地处理各种日期和时间任务。根据您的具体要求,可以选择合适的日期类和函数来处理日期和时间。