日期时间常用类
日期类
Date
Date 类位于Java.util
包中,用于表示特定的时间点
以下是一些常用方法
方法 | 描述 |
---|---|
Date() | 创建一个表示当前时间的 Date 对象 |
Date(long milliseconds) | 使用指定的毫秒数创建一个 Date 对象,从 1970 年 1 月 1 日开始计算 |
getTime() | 返回从 1970 年 1 月 1 日开始计算的毫秒数 |
getYear() | 返回从 1900 年开始计算的年份(已被废弃) |
getMonth() | 返回月份(0 到 11,即一月为 0) |
setTime(long milliseconds) | 设置日期和时间,以指定的毫秒数自 1970 年 1 月 1 日开始计算。 |
setYear(int year) | 设置年份(已被废弃)。 |
setMonth(int month) | 设置月份(0 到 11) |
setDate(int date) | 设置日期 |
toString() | 将 Date 对象转换为字符串表示。 |
toLocaleString() | 将 Date 对象转换为本地格式的字符串表示。 |
equals(Object boj) | 判断当前对象是否与另一个对象相等 |
compareTo(Date anotherDate) | 将当前Date对象与另一个Date对象比较 |
格式化Date对象
SimpleDateFormat
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateFormatExample {
public static void main(String[] args) {
Date currentDate = new Date();
// 创建 SimpleDateFormat 对象,指定想要的日期格式
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 使用 SimpleDateFormat 格式化 Date 对象为字符串
String formattedDate=dateFormat.format(currentDate);
System.out.println("Formatted Date: " + formattedDate);
}
}
DateTimeFormatte
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class DateTimeFormatExample {
public static void main(String[] args) {
LocalDateTime currentDateTime = LocalDateTime.now();
// 创建 DateTimeFormatter 对象,指定想要的日期时间格式
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// 使用 DateTimeFormatter 格式化 LocalDateTime 对象为字符串
String formattedDateTime = currentDateTime.format(formatter);
System.out.println("Formatted DateTime: " + formattedDateTime);
}
}
在模式字符串中,以下是一些常见的格式字符:
yyyy
: 年份(例如:2023)
MM
: 月份(例如:08)
dd
: 日(例如:27)
HH
: 小时(24 小时制,例如:15)
mm
: 分钟(例如:30)
ss
: 秒(例如:45)
Calender类
Calender类是Java用于处理日期和时间的类,位于Java.util
包中
常见用法:
获取实例:
getInstance()
: 获取一个表示当前日期和时间的Calendar
实例。
基本信息获取方法:
int get(int field)
: 获取指定字段的值,例如Calendar.YEAR
、Calendar.MONTH
等。int getActualMaximum(int field)
: 获取指定字段的最大值,例如某个月的最大天数。
基本信息设置方法:
void set(int field, int value)
: 设置指定字段的值。
日期和时间调整方法:
void add(int field, int amount)
: 根据指定的字段和增量进行日期和时间调整。void roll(int field, boolean up)
: 在不更改更大字段的情况下,根据指定的字段和方向(上/下)进行调整。
转换为其他日期/时间类型:
Date getTime()
: 将Calendar
对象转换为java.util.Date
对象。
格式化输出:
String toString()
: 返回Calendar
对象的字符串表示。
获取字段范围信息:
int getMinimum(int field)
: 获取指定字段的最小值。int getMaximum(int field)
: 获取指定字段的最大值。
获取周相关信息:
int getFirstDayOfWeek()
: 获取一周的第一天是星期几。int getWeeksInWeekYear()
: 获取一年中的周数。
设置周相关信息:
void setFirstDayOfWeek(int value)
: 设置一周的第一天是星期几。
void setMinimalDaysInFirstWeek(int value)
: 设置一年中的第一周所需的最小天数。
public static void main(String[] args) {
Calendar calendar=Calendar.getInstance();//创建一个Calenda对象
//设置日期为指定的年份,月份和日
calendar.set(1976,3,6);
//获取年份
int year=calendar.get(Calendar.YEAR);
System.out.println(year);
//获取月份,月份从0开始
int month=calendar.get(Calendar.MONTH)+1;
System.out.println(month);
//获取当前一天是一个月中的第几天
int dayofmonth=calendar.get(Calendar.DAY_OF_MONTH);
System.out.println(dayofmonth);
//获取当前一天是一周中的第几天
int dayofweek=calendar.get(Calendar.DAY_OF_WEEK);
System.out.println(dayofweek);
//输出修改之前日期
System.out.println(calendar.getTime());
//在月份上加一
calendar.add(Calendar.MONTH,1);
//输出修改之后日期
System.out.println(calendar.getTime());
//将calender对象转为对象
Date date=calendar.getTime();
System.out.println(date);
}
}
LocalDate
类
LocalDate
是Java中的一个日期类,他提供了处理日期的方法和功能,位于Java.time
包中
常用方法:
- 获取实例:
now()
: 获取当前日期。of(int year, int month, int dayOfMonth)
: 创建一个指定年、月、日的LocalDate
实例。
- 获取日期信息:
getYear()
: 获取年份。getMonth()
: 获取月份枚举(Month
枚举类型)。getMonthValue()
: 获取月份的值(1 到 12)。getDayOfMonth()
: 获取月份中的日。
- 日期比较:
isEqual(LocalDate otherDate)
: 判断是否与另一个日期相等。isBefore(LocalDate otherDate)
: 判断是否在另一个日期之前。isAfter(LocalDate otherDate)
: 判断是否在另一个日期之后。
- 日期调整:
plusDays(long daysToAdd)
: 增加指定天数。plusWeeks(long weeksToAdd)
: 增加指定周数。plusMonths(long monthsToAdd)
: 增加指定月数。plusYears(long yearsToAdd)
: 增加指定年数。minusDays(long daysToSubtract)
: 减少指定天数。minusWeeks(long weeksToSubtract)
: 减少指定周数。minusMonths(long monthsToSubtract)
: 减少指定月数。minusYears(long yearsToSubtract)
: 减少指定年数。
- 格式化为字符串:
format(DateTimeFormatter formatter)
: 将日期格式化为指定的字符串格式。
- 判断是否是闰年:
isLeapYear()
: 判断是否是闰年。
- 获取一周的第几天:
getDayOfWeek()
: 获取一周的第几天(DayOfWeek
枚举类型)。
- 日期解析:
parse(CharSequence text, DateTimeFormatter formatter)
: 从字符串解析出日期对象。
- 获取月份的长度:
lengthOfMonth()
: 获取当前月份的天数。
LocalTime
类
- 获取实例:
now()
: 获取当前时间。of(int hour, int minute)
: 创建一个指定小时和分钟的LocalTime
实例。of(int hour, int minute, int second)
: 创建一个指定小时、分钟和秒的LocalTime
实例。of(int hour, int minute, int second, int nanos)
: 创建一个指定小时、分钟、秒和纳秒的LocalTime
实例。
- 获取时间信息:
getHour()
: 获取小时。getMinute()
: 获取分钟。getSecond()
: 获取秒。getNano()
: 获取纳秒(小于 1 秒的部分)。
- 时间比较:
isBefore(LocalTime otherTime)
: 判断是否在另一个时间之前。isAfter(LocalTime otherTime)
: 判断是否在另一个时间之后。
- 时间调整:
plusHours(long hoursToAdd)
: 增加指定小时数。plusMinutes(long minutesToAdd)
: 增加指定分钟数。plusSeconds(long secondsToAdd)
: 增加指定秒数。plusNanos(long nanosToAdd)
: 增加指定纳秒数。minusHours(long hoursToSubtract)
: 减少指定小时数。minusMinutes(long minutesToSubtract)
: 减少指定分钟数。minusSeconds(long secondsToSubtract)
: 减少指定秒数。minusNanos(long nanosToSubtract)
: 减少指定纳秒数。
- 格式化为字符串:
format(DateTimeFormatter formatter)
: 将时间格式化为指定的字符串格式。
- 时间解析:
parse(CharSequence text, DateTimeFormatter formatter)
: 从字符串解析出时间对象。
LocalDateTime
类
- 获取实例:
now()
: 获取当前日期和时间。of(int year, int month, int dayOfMonth, int hour, int minute)
: 创建一个指定日期和时间的LocalDateTime
实例。of(int year, int month, int dayOfMonth, int hour, int minute, int second)
: 创建一个指定日期和时间的LocalDateTime
实例。of(int year, int month, int dayOfMonth, int hour, int minute, int second, int nanos)
: 创建一个指定日期和时间的LocalDateTime
实例。
- 获取日期时间信息:
toLocalDate()
: 获取日期部分,返回一个LocalDate
实例。toLocalTime()
: 获取时间部分,返回一个LocalTime
实例。getYear()
: 获取年份。getMonth()
: 获取月份枚举(Month
枚举类型)。getMonthValue()
: 获取月份的值(1 到 12)。getDayOfMonth()
: 获取月份中的日。getHour()
: 获取小时。getMinute()
: 获取分钟。getSecond()
: 获取秒。getNano()
: 获取纳秒(小于 1 秒的部分)。
- 日期时间比较:
isEqual(LocalDateTime otherDateTime)
: 判断是否与另一个日期时间相等。isBefore(LocalDateTime otherDateTime)
: 判断是否在另一个日期时间之前。isAfter(LocalDateTime otherDateTime)
: 判断是否在另一个日期时间之后。
- 日期时间调整:
plusYears(long yearsToAdd)
: 增加指定年数。plusMonths(long monthsToAdd)
: 增加指定月数。plusDays(long daysToAdd)
: 增加指定天数。plusHours(long hoursToAdd)
: 增加指定小时数。plusMinutes(long minutesToAdd)
: 增加指定分钟数。plusSeconds(long secondsToAdd)
: 增加指定秒数。plusNanos(long nanosToAdd)
: 增加指定纳秒数。minusYears(long yearsToSubtract)
: 减少指定年数。minusMonths(long monthsToSubtract)
: 减少指定月数。minusDays(long daysToSubtract)
: 减少指定天数。minusHours(long hoursToSubtract)
: 减少指定小时数。minusMinutes(long minutesToSubtract)
: 减少指定分钟数。minusSeconds(long secondsToSubtract)
: 减少指定秒数。minusNanos(long nanosToSubtract)
: 减少指定纳秒数。
- 格式化为字符串:
format(DateTimeFormatter formatter)
: 将日期时间格式化为指定的字符串格式。
- 日期时间解析:
parse(CharSequence text, DateTimeFormatter formatter)
: 从字符串解析出日期时间对象。