LocalDateTime 是在java8语言中引入的,作为日期和时间API增强的一部分。
它表示Date 和time ,没有timezone 信息。示例LocalDateTime对象显示为2022-12-14T06:12:40。
它是一个immutable 对象,这意味着一旦该对象被创建,将不会被修改。
它被用来存储日期,如生日和假期的时间信息。
LocalDate 它只包含年、月、日、时、分、秒的纳米级精度。
下面是LocalDateTime的语法和签名
该类实现了LocalDate 接口的ChronoLocalDateTime 。
public final class LocalDateTime
implements Temporal, TemporalAdjuster, ChronoLocalDateTime, Serializable
让我们来看看LocalDateTime类的例子。
如何在java中获得当前日期和时间?
在java中,我们有多种方法可以获得当前的日期和时间。
- 使用now()方法
now()方法返回使用默认系统时区的日期和时间。
import java.time.LocalDateTime;
public class LocalDateTimeExample {
public static void main(String[] args) {
LocalDateTime currentDateTime = LocalDateTime.now();
System.out.println(currentDateTime); //2021-12-14T18:13:40.564
}
}
它有一个静态的of() 方法,需要java.time.LocalDate和java.time.LocalTime来创建LocalDateTime对象。
下面是一个方法使用的例子。
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
public class LocalDateTimeExample {
public static void main(String[] args) {
LocalDateTime currentDateTime = LocalDateTime.of(LocalDate.now(), LocalTime.now());
System.out.println(currentDateTime);
}
}
LocalDateTime 有parse 方法,接受字符串对象和DateTimeFormatter 实例。
用日期模式创建的Datetimeformatter对象。
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class OptionalClassExample {
public static void main(String[] args) {
String string = "2022-12-12 12:30";
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
LocalDateTime localDateTime = LocalDateTime.parse(string, dateTimeFormatter);
System.out.println(localDateTime); //2022-12-12 12:30
}
}
date 是一个传统的类,LocalDateTime 在java8版本中被引入。
有时,我们需要将LocalDateTime转换为Date类。
下面是一个例子
import java.time.LocalDateTime;
import java.util.Date;
public class OptionalClassExample {
public static void main(String[] args) {
LocalDateTime localDateTime =LocalDateTime.now();
Date date = java.sql.Timestamp.valueOf( localDateTime );
System.out.println(date);
}
}
它提供了ofInstant() 方法,该方法接收即时对象和区域ID - 系统默认的区域IDLocalDateTime.toInstant() 方法用于将LocalDateTime转换为即时。
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
public class OptionalClassExample {
public static void main(String[] args) {
Instant instant = Instant.now();
LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
System.out.println(localDateTime);
}
}
System.currentTimeMillis() 返回当前的Epcoh milliseconds。使用 Instant.ofEpochMilli()方法创建 Instant,将Instant 转换为 LocalDate时间。
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.TimeZone;
public class OptionalClassExample {
public static void main(String[] args) {
LocalDateTime localDateTime =
LocalDateTime.ofInstant(Instant.ofEpochMilli(System.currentTimeMillis()), TimeZone
.getDefault().toZoneId());
System.out.println(localDateTime);
}
}
总结
本教程是关于LocalDateTime的教程,并附有实例