首页 > 解决方案 > 如何在 SimpleDateFormat 中分别从 MM/dd/yyyy kk:mm 获取 MM/dd/yyyy kk:mm

问题描述

如何在 SimpleDateFormat("MM/dd/yyyy kk:mm") 中与日期时间分开获取日期和时间;

我能够使用 simpledateformat 一起生成当前日期和时间。但是对于我的用例,我无法单独获取日期和时间。

    Date d = new Date();
SimpleDateFormat dateTimeFormat = new SimpleDateFormat("MM/dd/yyyy kk:mm");
dateTimeFormat.setTimeZone(TimeZone.getTimeZone("US/Mountain"));
String dateTime = dateTimeFormat.format(d);

这就是我正在做的事情。它一起给出了日期时间。如何分别获取日期和时间?

提前致谢!

标签: javadate

解决方案


我会改用 java.time API,例如,要分别获取日期和时间,您可以使用:

ZoneId zoneId = ZoneId.of("US/Mountain");
ZonedDateTime zdt = ZonedDateTime.now(zoneId);
LocalDate ld = zdt.toLocalDate();
LocalTime lt = zdt.toLocalTime();

如果你想获得你想要的格式,你可以使用:

String ld = zdt.format(DateTimeFormatter.ofPattern("MM/dd/yyyy"));
String lt = zdt.format(DateTimeFormatter.ofPattern("kk:mm"));

输出

04/05/2019
13:20

推荐阅读