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

Java日期函数大全:常用函数及示例

发布时间:2023-08-09 22:32:16

Java中的日期函数主要是通过使用java.util.Datejava.util.Calendarjava.time包下的类来实现的。下面是一些常用的日期函数及示例:

1. 获取当前日期和时间

import java.util.Date;

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

2. 格式化日期

import java.text.SimpleDateFormat;
import java.util.Date;

Date now = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formattedDate = sdf.format(now);
System.out.println(formattedDate);

3. 解析字符串为日期

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

String dateStr = "2021-12-31";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
    Date date = sdf.parse(dateStr);
    System.out.println(date);
} catch (ParseException e) {
    e.printStackTrace();
}

4. 获取日期的年份、月份和日

import java.util.Calendar;
import java.util.Date;

Date now = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(now);
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH) + 1; // 月份是从0开始的,所以要+1
int day = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println(year + "-" + month + "-" + day);

5. 获取指定日期是星期几

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

String dateStr = "2022-01-01";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
    Date date = sdf.parse(dateStr);
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(date);
    int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
    String[] weekdays = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
    System.out.println(weekdays[dayOfWeek - 1]);
} catch (ParseException e) {
    e.printStackTrace();
}

6. 计算两个日期之间的天数差

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.TimeUnit;

String startDateStr = "2022-01-01";
String endDateStr = "2022-03-31";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
    Date startDate = sdf.parse(startDateStr);
    Date endDate = sdf.parse(endDateStr);
    long diffInMillies = Math.abs(endDate.getTime() - startDate.getTime());
    long diffInDays = TimeUnit.DAYS.convert(diffInMillies, TimeUnit.MILLISECONDS);
    System.out.println(diffInDays);
} catch (ParseException e) {
    e.printStackTrace();
}

7. 添加或减少指定时间段

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

Date now = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(now);
calendar.add(Calendar.DAY_OF_MONTH, 7); // 添加7天
calendar.add(Calendar.MONTH, -1); // 减少1个月
Date newDate = calendar.getTime();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String formattedNewDate = sdf.format(newDate);
System.out.println(formattedNewDate);

以上是一些常用的日期函数及示例,但仅仅是Java日期函数的冰山一角。在实际应用中,可能还会涉及到更多的日期运算、时区转换、日期比较等操作。希望这些示例能够帮助你更好地使用Java进行日期处理。