用Java创建带有值的日期对象
时间:2020-01-09 10:35:16 来源:igfitidea点击:
在应用程序中,我们可能需要显示当前日期和时间,或者我们可能必须创建一个日期对象,并在其中指定年,月,日甚至小时,分钟和秒的值。在本文中,我们将介绍如何使用Java中的值创建Date对象。
尽管使用java.time中的新Date and Time API(例如LocalTime,LocalDate,LocalDateTIme和ZonedDateTime)很容易做到这一点,但是如果必须使用java.util类,则还可以使用Date和GregorianCalendar获得带有值的Date对象类。
使用GregorianCalendar的日期对象
在GregorianCalendar类中,以下三个构造函数用于创建实例,该实例的值分别为年,月,月,日,时,分,秒。
- GregorianCalendar(int year,int month,int dayOfMonth)–构造一个GregorianCalendar,并在默认时区中使用默认语言环境设置给定日期。
- GregorianCalendar(int年,int月,int dayOfMonth,int hourOfDay,int分钟)–构造一个GregorianCalendar,并为给定日期和时间的默认时区设置默认语言环境。
- GregorianCalendar(int年,int月,int dayOfMonth,int hourOfDay,int分钟,int秒)–构造一个GregorianCalendar,为给定日期和时间的默认时区设置默认语言环境。
import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; public class FormatDate { public static void main(String[] args) { // Creating GregorianCalendar with values GregorianCalendar calendar = new GregorianCalendar(2019, Calendar.FEBRUARY, 20, 18, 9, 22); // Getting Date object Date date = calendar.getTime(); System.out.println("DateTime is- " + date); // Specifying pattern SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy HH:mm:ss"); // Format date System.out.println("Time in 24 Hour format - " + sdf.format(date)); } }
使用新的日期和时间API创建日期对象
在新的Date and Time API类中,我们可以使用of()的静态方法传递用于创建日期的值。
使用LocalDate
如果只想创建没有时间值的日期,则可以使用java.time.LocalDate
LocalDate date = LocalDate.of(2019, Month.APRIL, 3); System.out.println("Date - " + date); // Date – 2019-04-03
使用LocalTime
如果只想指定时间值,则可以使用java.time.LocalTime
LocalTime time = LocalTime.of(17, 8, 32); System.out.println("Time - " + time); //Time – 17:08:32
使用LocalDateTime
如果要同时指定日期和时间值,则可以使用java.time.LocalDateTime
LocalDateTime dateTime = LocalDateTime.of(2018, Month.DECEMBER, 23, 13, 18, 23); System.out.println("Date Time - " + dateTime);//2018-12-23T13:18:23
使用ZonedDateTime
上述课程没有时区信息。如果需要时区信息,请使用ZonedDateTime并设置适当的时区ID。
ZonedDateTime zdt = ZonedDateTime.of(LocalDateTime.of(2018, Month.DECEMBER, 23, 13, 18, 23), ZoneId.of("Europe/Paris")); System.out.println("Zoned time - " + zdt); //2018-12-23T13:18:23+01:00[Europe/Paris]