用Java获取当前日期和时间
时间:2020-01-09 10:35:26 来源:igfitidea点击:
在本文中,我们将介绍使用Java获取当前日期和时间的不同方法。我们正在使用的选项
- java.util.Date
- java.util.Calendar
- java.time.LocalDate-获取日期。
- java.time.LocalTime-获取时间。
- java.time.LocalDateTime-获取日期和时间。
- java.time.ZonedDateTime-如果我们也需要时区信息。
在这些类中,LocalDate,LocalTime,LocalDateTime和ZonedDateTime是Java 8新的Date and Time API中的类。
1.使用java.util.Date获取日期和时间
实例化Date对象时,它会被初始化,以使其代表分配它的日期和时间。
Date date = new Date(); System.out.println(date);
输出:
Thu Oct 10 16:42:21 IST 2019
使用SimpleDateFormat,我们可以格式化该日期。
public class FormatDate { public static void main(String[] args) { Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss.SSS"); System.out.println(sdf.format(date)); } }
输出:
10/10/2019 04:50:49.197
2.使用java.util.Calendar获取日期和时间
使用Calendar类的getInstance()静态方法,我们可以获取Calendar的实例。
public class FormatDate { public static void main(String[] args) { Calendar calendar = Calendar.getInstance(); SimpleDateFormat sdf = new SimpleDateFormat("MMM-dd-yyyy hh:mm:ss"); System.out.println(sdf.format(calendar.getTime())); } }
3.使用java.time.LocalDate
LocalDate表示ISO-8601日历系统中没有时区的日期。使用now()方法,我们可以从系统时钟的默认时区中获取当前日期。
对于格式化日期,可以使用Java 8中也添加的DateTimeFormatter类。
public class FormatDate { public static void main(String[] args) { // get date LocalDate date = LocalDate.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy"); System.out.println(date.format(formatter)); } }
输出:
10/10/2019
4.使用java.time.LocalTime
LocalTime表示ISO-8601日历系统中没有时区的时间,例如08:10:30。
使用now()方法可以从默认时区的系统时钟获取当前时间。
public class FormatDate { public static void main(String[] args) { // get time LocalTime date = LocalTime.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("hh:mm:ss a"); System.out.println(date.format(formatter)); } }
输出:
05:11:31 PM
5.使用java.time.LocalDateTime
LocalDateTime表示ISO-8601日历系统中没有时区的日期时间,例如2007-12-03T10:15:30。
使用now()方法,我们可以在默认时区中从系统时钟获取当前日期时间。
public class FormatDate { public static void main(String[] args) { // get datetime LocalDateTime dateTime = LocalDateTime.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS"); System.out.println(dateTime.format(formatter)); } }
输出:
2019-10-10T17:14:41.098
6.使用java.time.ZonedDateTime
ZonedDateTime代表ISO-8601日历系统中带有时区的日期时间,例如2007-12-03T10:15:30 + 01:00欧洲/巴黎。如果需要区域偏移和时区,则可以使用ZonedDateTime实例。
public class FormatDate { public static void main(String[] args) { // get datetime ZonedDateTime dateTime = ZonedDateTime.now(); //z=time-zone name, V=time-zone ID DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS z VV"); System.out.println(dateTime.format(formatter)); } }
输出:
2019-10-10T17:22:31.958 IST Asia/Calcutta