下面是关于Java日期时间以及日期相互转换的完整攻略:
Java日期时间
Java提供了许多有关日期和时间的类,其中一些是java.util.Date,java.util.Calendar和java.time.LocalDate和java.time.LocalDateTime。 在本文中,我们将学习如何使用这些类来处理日期和时间。
Java.util.Date
java.util.Date类是Java API中表示日期和时间的基础类。该类的大多数方法都已弃用。最好使用java.time包中的类,如我们将在下面讨论的。
我们可以创建一个包含当前日期和时间的Date对象,如下所示:
Date currentDate = new Date();
System.out.println(currentDate);
Java.util.Calendar
java.util.Calendar类提供了与日历相关的许多方法。通过Calendar.getInstance()方法获取一个Calendar对象,然后就可以通过该对象获取当前时间的各种信息,如下所示:
Calendar current = Calendar.getInstance();
System.out.println(current.get(Calendar.YEAR));
System.out.println(current.get(Calendar.MONTH) + 1);
System.out.println(current.get(Calendar.DAY_OF_MONTH));
System.out.println(current.get(Calendar.HOUR));
System.out.println(current.get(Calendar.MINUTE));
System.out.println(current.get(Calendar.SECOND));
Java.time.LocalDate
Java 8引入了java.time包,它包含了一组新的日期/时间API,用于取代旧的java.util.Date,java.util.Calendar和java.text.SimpleDateFormat类。java.time.LocalDate类表示一个不带时间的日期,例如 2021-06-15。我们可以使用该类的静态方法now()获取当前日期,如下所示:
LocalDate currentDate = LocalDate.now();
System.out.println(currentDate);
我们还可以使用该类的of()和parse()方法来创建日期对象。of()方法按指定的年,月,日创建一个日期对象。parse()方法通过解析字符串来创建日期对象。示例如下:
LocalDate date1 = LocalDate.of(2021, 6, 15);
System.out.println(date1);
LocalDate date2 = LocalDate.parse("2021-06-15");
System.out.println(date2);
Java.time.LocalDateTime
java.time.LocalDateTime类表示日期和时间,例如 2021-06-15T12:30:45。我们可以使用该类的静态方法now()获取当前日期时间,如下所示:
LocalDateTime currentDateTime = LocalDateTime.now();
System.out.println(currentDateTime);
我们还可以使用该类的of()和parse()方法创建日期时间对象。示例如下:
LocalDateTime dateTime1 = LocalDateTime.of(2021, 6, 15, 12, 30, 45);
System.out.println(dateTime1);
LocalDateTime dateTime2 = LocalDateTime.parse("2021-06-15T12:30:45");
System.out.println(dateTime2);
日期相互转换
Java提供了一些方法来进行日期之间的相互转换。下面分别介绍日期和字符串之间的转换以及日期类型之间的转换。
日期和字符串之间的转换
Java提供了SimpleDateFormat类,可用于将日期格式化为字符串或将字符串解析为日期。示例如下:
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String strDate = sdf.format(date);
System.out.println(strDate);
String str = "2021-06-15 12:30:45";
Date date1 = sdf.parse(str);
System.out.println(date1);
日期类型之间的转换
Java 8的java.time包提供了一些方法,可以将日期/时间对象之间进行转换。示例如下:
LocalDate转Date
LocalDate localDate = LocalDate.now();
ZoneId zoneId = ZoneId.systemDefault();
Date date = Date.from(localDate.atStartOfDay(zoneId).toInstant());
System.out.println(date);
LocalDateTime转Date
LocalDateTime localDateTime = LocalDateTime.now();
ZoneId zoneId = ZoneId.systemDefault();
Date date1 = Date.from(localDateTime.atZone(zoneId).toInstant());
System.out.println(date1);
Date转LocalDate
Date date2 = new Date();
LocalDate localDate1 = date2.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
System.out.println(localDate1);
Date转LocalDateTime
Date date3 = new Date();
LocalDateTime localDateTime1 = LocalDateTime.ofInstant(date3.toInstant(), ZoneId.systemDefault());
System.out.println(localDateTime1);
至此,Java日期时间以及日期相互转换的完整攻略就讲解完毕了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java日期时间以及日期相互转换 - Python技术站