
java当前时间如何转换格式
用户关注问题
我想在Java程序中获取系统当前时间,并将其以“yyyy-MM-dd HH:mm:ss”的格式进行显示,应该怎么实现?
使用Java的日期时间API格式化当前时间
可以通过Java 8及以后的LocalDateTime类结合DateTimeFormatter类来获取并格式化当前时间。例如:
LocalDateTime now = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String formattedDateTime = now.format(formatter);
这样就可以得到当前时间字符串,格式为“年-月-日 时:分:秒”。
我需要将当前时间格式转换为如“dd/MM/yyyy”或“MM-dd-yyyy HH:mm”的格式,Java有什么便捷的方法?
利用DateTimeFormatter定义所需格式字符串
Java中的DateTimeFormatter非常灵活,支持自定义多种时间格式。只要创建DateTimeFormatter时传入不同的格式字符串,就能转换为对应格式。例如:
DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("dd/MM/yyyy");
DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("MM-dd-yyyy HH:mm");
然后调用 LocalDateTime.now().format(formatter1) 或 format(formatter2) 即可获得对应格式的日期时间字符串。
如果项目仍在使用Java 7或更早版本,没有LocalDateTime和DateTimeFormatter类,怎样实现时间格式转换?
使用SimpleDateFormat类进行时间格式化
在Java 7及之前版本,可以用java.text.SimpleDateFormat类配合java.util.Date来格式化当前时间。例如这样写:
Date now = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formattedTime = sdf.format(now);
这种方式同样可以实现对当前时间的定制化格式转换,兼容较老的Java环境。