LocalDate(本地日期)、LocalTime(本地时间)、LOcalDateTime(本地日期时间)
这三个类都是不可变类型,主要方法是类似主要of和now,他们都是静态方法。
now()方法说明如下:
static LocalDate now(): LocalDate静态工厂方法,该方法使用默认时区获得当前日期,返回LocalDate对象。
static LocalTime now():LocalTime静态工厂方法,该方法使用默认时区获得当前时间,返回LocalTime对象。
static LocalDateTime now():LocalDateTime静态工厂方法,该方法使用默认时区获得当前日期时间,返回LocalDateTime对象。
of()方法有很多重载方法,说明如下:
static LocalDateTime of(int year,int mouth,int dayOfMonth,int hour,int minute,int second):按照指定的年、月、日、小时、分钟和秒获得
LocalDateTime 实例,将纳秒设置为零。
static LocaTime of(int hour,int minute,int second):按照指定的小时、分钟和秒钟获取一个LocaTime 实例。
static LocaTime of(int year,int month,int dayOfMonth):按照指定的年、月和日获得一个.
代码实例:
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
public class DateTime {
public static void main(String[] args) {
//使用now方法获得LocalDate对象
LocalDate date1=LocalDate.now();
System.out.println("date1="+date1);
//使用of方法获得LocalDate对象2020-03-05
LocalDate date2=LocalDate.of(2020,3,5);
System.out.println("date2="+date2);
//使用now方法获得LocalTime对象
LocalTime time1=LocalTime.now();
System.out.println("time1="+time1);
//使用of方法获得LocalTime对象08:58:20
LocalTime time2=LocalTime.of(8,58,20);
System.out.println("time2="+time2);
//使用now方法获得LocalDateTime对象
LocalDateTime dateTime1=LocalDateTime.now();
System.out.println("dateTime1="+dateTime1);
//使用of方法获得LocalDateTime对象2020-03-05T08:58:20
LocalDateTime dateTime2=LocalDateTime.of(2020,3,5,8,58,20);
System.out.println("dateTime2="+dateTime2);
}
结果打印
日期格式化和解析
java.time.format.DateTimeFormatter日期格式化,在借助于LocalDate、LocalTime和LocalDateTime的相关方法。
1、日期格式化
日期格式化方法是format,这三个类每一个都有String format(DateTimeFormatter fonnatter),参数formatter是DateTimeFormatter类型。
2、日期解析
日期解析方法是parse,这三个类每一个都有两个版本的parse方法,具体说明如下
static LocalDateTime parse(CharSequence text):使用默认格式,从一个文本字符串获取一个 LocalDateTime实例,如2020-03-05T22:14:55。
static LocalDateTime parse(CharSequence text,DateTimeFormatter formatter):使用指定格式化,从文本字符串获取LocalDateTime 实例。
static LocalDate parse(CharSequence text):使用默认格式,从一个文本字符串获取一个LocalDate 实例,如2020-03-05。
static LocalDate parse(CharSequence text,DateTimeFormatter formatter):使用指定格式化,从文本字符串获取LocalDate 实例。
static LocalTime parse(CharSequence text):使用默认格式,从一个文本字符串获取一个LocalTime 实例。
static LocalTime parse(CharSequence text,DateTimeFormatter formatter):使用指定的格式化,从文本字符串获取LocalTime 实例。
代码实例:
public class DateTimeFormatter {
public static void main(String[] args) {
//创建LocalDateTime对象
LocalDateTime dateTime=LocalDateTime.now();
System.out.println("dateTime格式化之前:"+dateTime);
//设置格式化器
DateTimeFormatter formatter=DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String text = dateTime.format(formatter);
System.out.println("dateTime格式化之后:"+text);
//格式化字符串“2020-03-05 22:25:55” 返回LocalDateTime对象
LocalDateTime parsedDateTime=LocalDateTime.parse("2020-03-05 22:25:55",formatter);
System.out.println("LocalDateTime解析之后:"+parsedDateTime);
//创建LocalDate对象
LocalDate date = LocalDate.now();
System.out.println("date格式化之前:"+date);
//重新设置格式化器
formatter=DateTimeFormatter.ofPattern("yyyy:MM:dd");
text=date.format(formatter);
System.out.println("date格式化之后:"+text);
//格式化字符串“2020-03-05”。返回LocalDate对象
LocalDate parsedDate=LocalDate.parse("2020-03-05",formatter);
System.out.println("LocalDate解析之后:"+parsedDate);
//创建LocalTime对象
LocalTime time=LocalTime.now();
System.out.println("time格式化之前:"+time);
//重新设置格式化器
formatter=DateTimeFormatter.ofPattern("HH:mm:ss");
text=time.format(formatter);
System.out.println("time格式化之后:"+text);
//格式化字符串“22:25:55”,返回LocalTime对象
LocalTime parsedTime = LocalTime.parse("22:25:55",formatter);
System.out.println("LocalTime解析之后:"+parsedTime);
}
}