一、SimpleDateFormat类
SimpleDateFormat是一个具体的类,用于以区域设置敏感的方式格式化和解析日期。
格式化(从Date到String): public final String format(Date date):将日期格式化成日期/时间字符串。
解析(从String到Date):public Date parse(String source):从给定字符串的开始解析文本以生成日期。
示例代码:
public class SimpleDateFormatDemo {
public static void main(String[] args) throws ParseException {
//格式化:从 Date 到 String
Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
String s = sdf.format(d);
System.out.println(s);
System.out.println("--------");
//从 String 到 Date
String ss = "2024-08-24 16:24:30";
//ParseException
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date dd = sdf2.parse(ss);
System.out.println(dd);
}
}
二、LocalDate类
LocalDate类不能代表时间线上的即时信息,只是日期描述。
获取日期对象的方法:
//按指定日期创建LocalDate对象
LocalDate date = LocalDate.of(2024,8,30);
//从默认时区的系统时钟获取当前日期
LocalDate now = LocalDate.now();
三、LocalTime类
LocalTime类用来表示时区的时间,通常表示的是时、分、秒。
//获取时间
LocalTime time1 = LocalTime.now();
LocalTime time2 = LocalTime.of();
四、LocalDateTime类
LocalDateTime类是LocalDate类LocalTime类的综合,既包含日期也包含时间。
1.创建方法
方法名 | 说明 |
---|---|
public static LocalDateTime now() | 获取当前系统时间 |
public static LocalDateTime of (年, 月 , 日, 时, 分, 秒) | 使用指定年月日和时分秒初始化一个LocalDateTime对象 |
public class Date {
public static void main(String[] args) {
LocalDateTime now = LocalDateTime.now();
System.out.println(now);
LocalDateTime localDateTime = LocalDateTime.of(2024,8,30,16,24,30);
System.out.println(localDateTime);
}
}
2.获取相应的值的方法
public int getYear() | 获取年 |
public int getMonthValue() | 获取月份(1-12) |
public int getDayOfMonth() | 获取月份中的第几天(1-31) |
public int getDayOfYear() | 获取一年中的第几天(1-366) |
public DayOfWeek getDayOfWeek() | 获取星期 |
public int getMinute() | 获取分钟 |
public int getHour() | 获取小时 |
public class 8Date{
public static void main(String[] args) {
LocalDateTime localDateTime = LocalDateTime.of(2024,8,30,16,24,30);
//public int getYear() 获取年
int year = localDateTime.getYear();
System.out.println("年为" +year);
//public int getMonthValue() 获取月份(1-12)
int month = localDateTime.getMonthValue();
System.out.println("月份为" + month);
Month month1 = localDateTime.getMonth();
System.out.println(month1);
//public int getDayOfMonth() 获取月份中的第几天
int day = localDateTime.getDayOfMonth();
System.out.println("日期为" + day);
//public int getDayOfYear() 获取一年中的第几天
int dayOfYear = localDateTime.getDayOfYear();
System.out.println("这是一年中的第" + dayOfYear + "天");
//public DayOfWeek getDayOfWeek()获取星期
DayOfWeek dayOfWeek = localDateTime.getDayOfWeek();
System.out.println("星期为" + dayOfWeek);
//public int getMinute() 获取分钟
int minute = localDateTime.getMinute();
System.out.println("分钟为" + minute);
//public int getHour() 获取小时
int hour = localDateTime.getHour();
System.out.println("小时为" + hour);
}
}
3.LocalDateTime格式化和解析代码示例:
public class JDK8DateDemo5 {
public static void main(String[] args) {
//method1();
//method2();
}
private static void method2() {
//public static LocalDateTime parse (准备解析的字符串, 解析格式) 把一个日期字符串解析成为一个LocalDateTime对象
String s = "2024年8月30日 16:24:30";
DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
LocalDateTime parse = LocalDateTime.parse(s, pattern);
System.out.println(parse);
}
private static void method1() {
LocalDateTime localDateTime = LocalDateTime.of(2024,8,30,16,24,30);
System.out.println(localDateTime);
//public String format (指定格式) 把一个LocalDateTime格式化成为一个字符串
DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
String s = localDateTime.format(pattern);
System.out.println(s);
}
}