一、通过Date类获取当前时间
Java程序可以使用Date类获取当前系统时间,可以获得时间的毫秒数。
Date date = new Date();
System.out.println(date);
输出结果为:
Wed Nov 25 11:56:27 CST 2020
通过Date对象的toString()方法,可以将系统时间格式化为字符串类型。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String currentTime = sdf.format(date);
System.out.println(currentTime);
输出结果为:
2020-11-25 11:56:27
二、通过Calendar类获取当前时间
Java程序还可以使用Calendar类获取当前系统时间,可以更加方便的获取年、月、日、时、分、秒等具体时间。
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH) + 1;
int day = calendar.get(Calendar.DATE);
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
System.out.println(year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second);
输出结果为:
2020-11-25 12:13:35
三、通过Instant类获取当前时间
Java程序还可以使用Java 8中的新时间API(包括Instant类和LocalDateTime类)获取当前系统时间,使用起来更加简单。
Instant instant = Instant.now();
System.out.println(instant);
输出结果为:
2020-11-25T04:19:27.693Z
Instant可以通过atZone()方法转换为本地时间,使用toLocalDateTime()方法可以转换为LocalDateTime对象。
ZonedDateTime zonedDateTime = instant.atZone(ZoneId.systemDefault());
System.out.println(zonedDateTime);
LocalDateTime localDateTime = instant.atZone(ZoneId.systemDefault()).toLocalDateTime();
System.out.println(localDateTime);
输出结果为:
2020-11-25T12:06:04.635+08:00[Asia/Shanghai]
2020-11-25T12:06:04.635
四、当地时间和UTC时间的转换
如果需要将当地时间转换为UTC时间,可以使用Java 8提供的新时间API中的ZoneOffset类。
LocalDateTime localDateTime = LocalDateTime.now();
System.out.println(localDateTime);
ZoneOffset offset = OffsetDateTime.now().getOffset();
// 获得本地时间与UTC时间的偏差
System.out.println(offset);
Instant instant = localDateTime.toInstant(offset);
// 转换为UTC时间
System.out.println(instant);
输出结果为:
2020-11-25T12:34:11.743
+08:00
2020-11-25T04:34:11.743Z
五、获取时间戳
Java程序还可以使用System类获取时间戳,可以获得当前时间与1970年1月1日00:00:00之间的毫秒数或秒数。
long timestampInMillis = System.currentTimeMillis();
System.out.println(timestampInMillis + "ms");
long timestampInSeconds = timestampInMillis / 1000;
System.out.println(timestampInSeconds + "s");
输出结果为:
1606277658455ms
1606277658s
六、总结
本文介绍了Java程序获取当前时间的几种常用方法,包括使用Date类、Calendar类、Instant类以及System类等。通过这些方式,可以获得当前系统时间、当地时间和UTC时间的转换、以及时间戳等。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/257568.html
微信扫一扫
支付宝扫一扫